2016-11-04 135 views
0

根據您在下面看到的是已選擇項目的datagridview示例。所有Datagridview中的一行選擇器

enter image description here

這裏是我的問題,如果我有一個超過1周的DataGridView?我的意思是5這樣的Datagridview。

enter image description here

他們的所有隻包含1列。根據第一張圖片,行選擇器或藍色選擇一個項目。

我的問題是如何使所有的datagridview只有一個行選擇器?

發生了什麼是當我選擇他們每個人都有一行選擇5選擇。

我如何爲所有人選擇1行選擇器。

想改變選擇顏色,但我認爲這不適用。

TYSM爲未來的幫助。

+0

5 datagrid或更多?那麼如果在第一個數據網格中單擊第一行,那麼第二個數據網格也將選擇第一行,依此類推?這是你想要達到的目標嗎? – Muj

+1

沒有先生,例如我點擊datagridview1,所以有一個藍色的選擇器,如果我點擊datagridview2從datagridview1的行選擇將不見了,因爲我選擇了一個新的等等,例如一個datagridview有很多列和'CellSelect SelectiondMode'一在所有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事件都包含在內,所以你不必將複製粘貼到它到五個單獨的事件。