根据您在下面看到的是已选择项目的数据网格视图示例。
这是我的问题,如果我有一个以上的Datagridview怎么办?我的意思是像这样的5个Datagridview。
它们全部仅包含1列。根据第一张图像,行选择器或蓝色选择一个项目。
我的问题是如何让所有datagridview只有一个行选择器?
当我选择其中的每一个时,会有一行选择了5个选项。
如何为所有人制作1行选择器。
考虑改变选择颜色,但我认为这不适用。
TYSM将来的帮助。
答案 0 :(得分:2)
如果您正在寻找替代方案,您也可以尝试这种方法:
Private Sub DataGridView_CellEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles _
DataGridView1.CellEnter, DataGridView2.CellEnter, DataGridView3.CellEnter, DataGridView4.CellEnter, DataGridView5.CellEnter
Dim MyDataGrids() As DataGridView = {DataGridView1, DataGridView2, DataGridView3, DataGridView4, DataGridView5}
For i = 0 To MyDataGrids.Count - 1
If MyDataGrids(i).Name = sender.Name Then
Continue For
Else
MyDataGrids(i).ClearSelection()
End If
Next
End Sub
MyDataGrids()
是DataGridViews
的数组。例如,如果您需要检查的控件增加,只需在此数组中添加DataGridView
的名称,它将包含在检查和清除选择中。不要忘记Handles
事件。正如您在此处所看到的,所有五个网格.CellEnter
事件都包含在内,因此您无需将其复制粘贴到五个单独的事件中。
答案 1 :(得分:0)
尝试这一点,如果添加更多网格,可能更容易编辑
Private Sub ClearSelectedCells(ByVal Identifier As Integer)
If Identifier = 1 Then 'for datagrid 1
dg2.ClearSelection()
dg3.ClearSelection()
ElseIf Identifier = 2 Then 'for datagrid 2
dg1.ClearSelection()
dg3.ClearSelection()
'and so on
.
.
End If
End Sub
Private Sub dg1_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dg1.CellClick
ClearSelectedCells(1)
End Sub
'and other gridcellclick
.
.