我在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行)
我感谢任何给予的帮助。我试图张贴我的表格的照片,但没有足够的重复点。
答案 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;
}
}