2016-11-04 2 views
0

Основываясь на том, что вы видите ниже, образец выборки datagridview показывает, что элемент был выбран.Селектор одной строки во всех Datagridview

enter image description here

Вот мой вопрос, что если у меня есть более чем 1 DataGridView? Я имею в виду 5 Datagridview вот так.

enter image description here

Все из них содержит 1 колонка только. На основе 1-го изображения селектор строк или синий выбирают элемент.

Мой вопрос в том, как я могу сделать все datagridview только одним селектором строк?

Что происходит, когда я выбрал каждый из них, он выбрал 5 выбранных строк.

Как я могу сделать селектор 1 строки для всех из них.

Мысль об изменении цвета выбора, но я думаю, что это неприменимо.

TYSM для дальнейшей помощи.

+0

5 datagrid или больше? то, если вы нажмете 1-ю строку в 1-м datagrid, второй datagrid также выберет 1-й ряд и так далее? это то, чего вы хотите достичь? – Muj

+1

Нет, сэр, например, я нажимаю datagridview1, поэтому есть синий селектор. Если я нажму datagridview2, селектор строк из datagridview1 исчезнет, ​​потому что я выбрал новый и т. Д. Например, datagridview со многими столбцами и 'CellSelect SelectiondMode' One селектор строк во всех 5 datagridview –

+1

, тогда вставьте 'clearselection', например, вы щелкните datagrid1, затем вставьте' dg2.clearselection() dg3.clearselection() 'и так далее. то, если вы нажмете datagrid2, тогда вставьте 'dg1.clearselection() dg3.clearselection()' и так далее. – Muj

ответ

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 
. 
. 
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 события включены, поэтому вам не нужно copy-paste это пять отдельных событий.

Смежные вопросы