我们说我的表单上有两个DataGridViews。 DGV中的列都是不同的。但是,两个网格的第一列称为" ProductID"。 " ProductID"列被格式化为组合框。对于第一个网格,我将默认组合框选项为数字1-10。如何将第二个DGV组合框设置为仅具有已在第一个DGV中选择的选项?
因此,如果我填写第一个DGV的两行,并且第一个ProductID是' 1'第二行是' 5',' ProductID'的唯一选项。在第二个DataGridView上将是' 1'和' 5'。非常感谢,我希望我提供了充足的信息。
答案 0 :(得分:0)
这应该有效
Private Sub DataGridView1_CellValueChanged(sender As Object, e As DataGridViewCellEventArgs) Handles DataGridView1.CellValueChanged
Dim vals = DataGridView1.
Rows.OfType(Of DataGridViewRow).
Where(Function(r) r.Cells(0).Value IsNot Nothing).
Select(Function(r) r.Cells(0).Value).
Distinct()
Me.Column2.Items.Clear()
For Each v In vals
Me.Column2.Items.Add(v.ToString())
Next
End Sub
在linq:
然后
DataGridView1是第一列中每个组合框中具有10个ID的那个。这由代码中的索引引用为r.Cells(0)
Column1是上述列的名称
Column2是第二个DataGridView中要过滤项目的列的名称
如果您在dgv 2中选择了一个值,然后在dgv1中取消选择它,则会出现异常。由你来处理。