2016-11-04 4 views
0

Basierend auf was Sie unten sehen, ist das Beispiel einer Datagridview, dass ein Element ausgewählt wurde. HierEin Zeilenselektor in allen Datagridview

enter image description here

ist meine Frage, was, wenn ich eine mehr als 1 Datagridview haben? Ich meine 5 Datagridview so.

enter image description here

Alle von ihnen enthält 1 Spalte nur. Basierend auf dem ersten Bild wählt der Reihenwähler oder der blaue einen Gegenstand aus.

Meine Frage ist, wie kann ich alle datagridview nur einen Zeilenselektor haben?

Was passiert ist, wenn ich jedes von ihnen alle ausgewählt hat, hat eine Zeile 5 Auswahlmöglichkeiten ausgewählt.

Wie kann ich 1 Reihe Selektor für alle von ihnen machen.

Denken Sie daran, die Auswahlfarbe zu ändern, aber ich denke, das ist nicht anwendbar.

TYSM für zukünftige Hilfe.

+0

5 Datagrid oder mehr? dann, wenn Sie 1. Reihe im 1. Datagrid klicken, wählt das 2. Datagrid auch die 1. Reihe und so weiter? Das willst du erreichen? – Muj

+1

Nein Sir, Beispiel Ich klicke auf datagridview1, so dass es einen blauen Selektor gibt. Wenn ich auf datagridview2 klicke, ist der Zeilenselektor von datagridview1 verschwunden, weil ich einen neuen ausgewählt habe, zB datagridview mit vielen Spalten und 'CellSelect SelectiondMode' One Zeilenselektor in allen 5 datagridview –

+1

dann einfügen 'clearselection' zum Beispiel klicken Sie auf datagrid1 dann einfügen' dg2.clearselection() dg3.clearselection() 'und so weiter. Wenn Sie dann auf datagrid2 klicken, fügen Sie 'dg1.clearselection() dg3.clearselection()' usw. ein. – Muj

Antwort

0

Versuchen Sie dies vielleicht ist es mehr einfach zu bearbeiten, wenn Sie mehr Gitter hinzufügen

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

Wenn Sie nach einer Alternative suchen, können Sie auch versuchen, diesen Ansatz:

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() ist ein Array von DataGridViews. Wenn zum Beispiel die Steuerelemente, die Sie überprüfen müssen, sich erhöhen, fügen Sie einfach den Namen des DataGridView in diesem Array hinzu und es wird in das Prüfen und Löschen von Selektionen einbezogen. Vergessen Sie auch nicht das Handles Ereignis. Wie Sie hier sehen können, sind alle fünf Raster .CellEnter Event enthalten, so dass Sie nicht Copy-Paste es zu fünf separaten Ereignissen müssen.

Verwandte Themen