C# 在选择第一行后选择另外两行datagridview,与“rptId”字段相关
我在windows窗体中有三个DataGridView,希望能够根据rptID列值自动让另外两个DataGridView选择各自的行。 所有三个DataGridView都是不同的sql表,由rptID关联 我已经能够使用以下代码在点击事件中从所有三个dgv中提取rptID:C# 在选择第一行后选择另外两行datagridview,与“rptId”字段相关,c#,winforms,datagridview,C#,Winforms,Datagridview,我在windows窗体中有三个DataGridView,希望能够根据rptID列值自动让另外两个DataGridView选择各自的行。 所有三个DataGridView都是不同的sql表,由rptID关联 我已经能够使用以下代码在点击事件中从所有三个dgv中提取rptID: private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) { int 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行
我非常感谢所给予的任何帮助。我试图发布我表格的图片,但没有足够的代表点。请看下面的示例:
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并尝试/捕获
干杯,
MartinMartin,我在DataGridView旁边有文本框,其中填充了每行字段中的值。发生.selected事件时,其他dgv中的选定行将发生更改,但文本框中不会填充数据。你知道这是为什么吗?是否必须将新选择的行设置为当前行?再次感谢你的帮助。马丁,我能找到答案。我现在希望它能正常工作。谢谢你的回复。代码如下:
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;
}
}