选择第一个后选择另外两个datagridview行,相关的' rptId'领域

时间:2014-08-19 17:30:57

标签: c# winforms datagridview

我在Windows窗体中有三个datagridviews,并希望能够根据rptID列值自动选择其他两个datagridviews来选择各自的行。
所有三个datagridviews都是不同的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行)

我感谢任何给予的帮助。我试图张贴我的表格的照片,但没有足够的重复点。

2 个答案:

答案 0 :(得分:0)

请看一下这个例子:

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 ...

干杯, 马丁

答案 1 :(得分:0)

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;                            
            }

    }