以一种形式链接多个Datagridviews C#

时间:2016-06-03 14:04:40

标签: c# visual-studio datagridview

我在c#中创建了一个表单,其中包含三个sql表中的三个datagridviews。所有gridviews都有一个字段。如果我在gridview中自动选中一个复选框,则应选择其他gridview复选框列,其中公共字段值相等。第一个网格视图包含itmcod,title,procod,typcod这四个字段。第二个包含标题,procod,defalt,第三个包含标题,typcod,defalt,procod,title2。值procod对于所有三个数据都是通用的。我在gridview 2中自动选择一行gridview 1& 3应该选择procod值相等的所有值。我该怎么做

1 个答案:

答案 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;中的单元格的相同值。列。