所有Datagridview

时间:2016-11-04 07:13:59

标签: vb.net winforms datagridview

根据您在下面看到的是已选择项目的数据网格视图示例。

enter image description here

这是我的问题,如果我有一个以上的Datagridview怎么办?我的意思是像这样的5个Datagridview。

enter image description here

它们全部仅包含1列。根据第一张图像,行选择器或蓝色选择一个项目。

我的问题是如何让所有datagridview只有一个行选择器?

当我选择其中的每一个时,会有一行选择了5个选项。

如何为所有人制作1行选择器。

考虑改变选择颜色,但我认为这不适用。

TYSM将来的帮助。

2 个答案:

答案 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
.
.