Shadow Fiend
Shadow Fiend

Reputation: 351

One row selector in all Datagridview

Based on what you see below is the sample of a datagridview that an item has been selected.

enter image description here

Here is my question what if I have a more than 1 Datagridview? I mean 5 Datagridview like this.

enter image description here

All of them contains 1 column only. Based on the 1st image, the row selector or the blue one select an item.

My question is how can I make all of the datagridview only have one row selector?

What happens is when i selected each of them all of it has a row selected 5 selections.

How can I make 1 row selector for all of them.

Thinking of changing the Selection Color but I think that's not applicable.

TYSM for future help.

Upvotes: 0

Views: 286

Answers (2)

Aethan
Aethan

Reputation: 1985

If you're looking for an alternative, you can also try this approach:

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() is an array of DataGridViews. If for example, the controls you need to check increases, just add the name of the DataGridView in this array and it will be included in the checking and clearing of selections. Don't also forget the Handles event. As you can see here, all of the five grids .CellEnter event are included so you don't have to copy-paste it to five separate events.

Upvotes: 2

Muj
Muj

Reputation: 166

Try this maybe it is more easy to edit if you add more grid

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

Upvotes: 0

Related Questions