2014-06-06 72 views
2

在datagridview按鍵事件中,如果用戶選擇所有單元格或僅選擇任何單元格數據,我想捕獲該事件。如何檢查用戶是否選擇vb.net中的datagridview中的所有單元格或任何單元格

Private Sub dg_KeyDown(ByVal sender As Object, ByVal e As KeyEventArgs) Handles dg.KeyDown 

      If e.Control AndAlso e.KeyCode = Keys.C Then 

       If all cells select then 
        ClipboardCopyMode = EnableAlwaysIncludeHeaderText 
       Else 
        ClipboardCopyMode=EnableWithoutHeaderText 
       End if 
      End If 

    End Sub 

任何幫助請!

+1

創建一個二維數組並將每個單元格值存儲在其單獨的位置。或者你可以像'ColumnIndex','RowIndex','Header'和'Value'那樣創建一個像'myValueClass'這樣的自定義類並創建一個該類對象的列表。 '列表'。 – Shell

+0

感謝您的邏輯。我現在工作了。 – Sokea

回答

2

有幾個DataGridView方法和屬性可以幫助你在這裏:SelectedCells.Count,SelectedCells.Rows.CountSelectedCells.GetColumnCount方法。

SelectedCells.Count是不言自明的。

爲了獲得細胞的總數在一個DataGridView,你可以乘行數和列數,使用SelectedCells.Rows.Count屬性和方法SelectedCells.GetColumnCount,在DataGridViewElementStates.Visible參數傳遞,以保證隱藏的列不用於計算中。

你需要做的是確定所選單元格的數量等於細胞的總數量在DataGridView中,像這樣:

Private Function AllCellsSelected(dgv As DataGridView) As Boolean 
    AllCellsSelected = (DataGridView1.SelectedCells.Count = (DataGridView1.RowCount * DataGridView1.Columns.GetColumnCount(DataGridViewElementStates.Visible))) 
End Function 

我建議你創建一個布爾標誌,表示如果所有細胞選中並使用AllCellsSelected方法在DataGridView的SelectionChanged事件處理程序中設置此標誌。檢查您的KeyDown中此標誌的值。

相關問題