這應該工作
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:
- 獲取行。必須與OfType投獲得的IEnumerable
- 過濾器僅行與價值觀
- 選擇值(字符串)
- 以一個不同的子集,不會有兩個7級的時候7選擇兩次
然後
![image:](https://i.stack.imgur.com/I3k6p.png)
DataGridView1是一個在每個在第一列中的組合框的10組的ID。這是通過索引代碼中r.Cells(0)
column1的引用爲索引0是以上
列2中描述的列的名稱在第二DataGridView中柱,其中,要篩選的物品的名稱
如果您在dgv 2中選擇了一個值,然後在dgv1中取消選擇了一個值,則會出現異常。由你來處理。
來源
2017-09-12 22:09:20
djv
顯示dgvs如何填充會幫助一些代碼。 – djv
DGV沒有以編程方式填充。用戶通過表格上的DGV提供輸入。 DGV的數據源是DataTables,它是預定義的,因爲我需要從它們生成xml文件。 –
組合框如何在其中獲得1,2,3,...,10? – djv