我在c#中创建了一个表单,其中包含三个sql表中的三个datagridviews。所有gridviews都有一个字段。如果我在gridview中自动选中一个复选框,则应选择其他gridview复选框列,其中公共字段值相等。第一个网格视图包含itmcod,title,procod,typcod这四个字段。第二个包含标题,procod,defalt,第三个包含标题,typcod,defalt,procod,title2。值procod对于所有三个数据都是通用的。我在gridview 2中自动选择一行gridview 1& 3应该选择procod值相等的所有值。我该怎么做
答案 0 :(得分:1)
如果您只想要选择整行,那么我建议您将.SelectionMode
设置为FullRowSelect
并将MultiSelect
设置为false,如果您只想关注一行中的一行时间。然后,您可以在第一个datagridview的SelectionChanged事件中实现您想要的内容:
void DataGridView1SelectionChanged(object sender, EventArgs e)
{
//If MultiSelect = true
//foreach(DataGridViewRow row in dataGridView1.SelectedRows)
//If multiselect = false
using(DataGridViewRow row = dataGridView1.CurrentRow)
{
foreach(DataGridViewRow rs in dataGridView2.Rows.Cast<DataGridViewRow>().Concat(dataGridView3.Rows.Cast<DataGridViewRow>()).Where(r => !r.IsNewRow).Where(r => r.Cells["procod"].Value.ToString().Trim() != String.Empty).Where(r => r.Cells["procod"].Value.ToString() == row.Cells["procod"].Value.ToString()))
rs.Selected = true;
}
}
这只是循环其他两个datagridviews中的行,这些行具有&#34; procod&#34;中的单元格的相同值。列。