在选择第一行之后选择其他两个datagridview行,相关于'rptId'字段

本文关键字:选择 字段 rptId 一行 之后 其他 两个 datagridview | 更新日期: 2023-09-27 18:18:38

我有三个datagridviews在一个窗口的形式,并希望能够自动有另外两个datagridviews选择各自的行,基于rptID列值。
所有三个datagridview都是不同的sql表,通过rptID关联。

我已经能够从所有三个dgv的点击事件中拉出rptID与以下代码:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int rptIdValue1 = Convert.ToInt32(dataGridView1.Rows[e.RowIndex].Cells[0].FormattedValue.ToString());   
        }

我的问题是弄清楚如何,用这个rptID值,将它与其他两个dgv的比较,并选择相应的dgv行(即单击rptID 51,然后自动选择其他两个dgv的相应rptID行)。

我很感激给予的任何帮助。我试着张贴一张我的表格,但没有足够的rep点。

在选择第一行之后选择其他两个datagridview行,相关于'rptId'字段

看一下这个例子:

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        var rptIdValue1 = (int)dataGridView1.Rows[e.RowIndex].Cells[0].Value;
        foreach (DataGridViewRow r in dataGridView2.Rows)
        {
            if ((int)r.Cells[0].Value != rptIdValue1) continue;
            dataGridView2.Rows[r.Index].Selected = true;
            break;
        }
    }

你必须检查null并尝试/catch…

欢呼,马丁

private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        var rptIdValue1 = (int)dataGridView1.Rows[e.RowIndex].Cells[0].Value;
            foreach (DataGridViewRow r2 in dataGridView2.Rows)
            {
                if ((int)r2.Cells[0].Value != rptIdValue1)
                    continue;
                dataGridView2.Rows[r2.Index].Selected = true;
                dataGridView2.CurrentCell = dataGridView2.Rows[r2.Index].Cells[0];
                break;                           
            }
            foreach (DataGridViewRow r3 in dataGridView3.Rows)
            {
                int dgv3Index = (int)dataGridView3.Rows[e.RowIndex].Cells[0].RowIndex;
                if ((int)r3.Cells[0].Value != rptIdValue1) 
                    continue;
                dataGridView3.Rows[r3.Index].Selected = true;
                dataGridView3.CurrentCell = dataGridView3.Rows[r3.Index].Cells[0];
                break;                            
            }
    }