2015-10-05 122 views
2

我正在使用一個DataGridView,它使用包含DataGridViewComboBoxColumn列的幾列的設計器創建。DataGridViewComboBoxColumn - 必須單擊兩次單元格以顯示組合框

據略有刺激性,我要對每一個電池點擊兩次甚至三次,以顯示下拉列表:

  1. 如果我點擊了文字部分,它需要點擊!

enter image description here enter image description here enter image description here

  • 如果我點擊向下arroow,只有兩個點擊:
  • enter image description here enter image description here

    我假設這是由於單元格使用第一次點擊來獲得焦點,但有沒有辦法解決這個問題,所以點擊一個單元格立即顯示組合框?我注意到,使用DataGridViewCheckBoxColumn同樣的問題不是發生......單擊一個複選框會立即切換它,無論該單元是否有焦點。

    +0

    也許這可以幫助:[http://stackoverflow.com/a/242760/3413552](http://stackoverflow.com/a/242760/3413552) –

    +0

    您可能需要檢查[此解決方案。 ](http://stackoverflow.com/questions/34543940/datagridviewcomboboxcolumn-doesnt-open-the-dropdown-on-first-click/39757746#39757746) – TaW

    回答

    4

    您可以簡單地設置您的DataGridViewEditOnEnterEditMode財產。

    它使編輯更容易。幾乎一次點擊,但如果您希望立即爲點擊ComboBoxColumn的組合框顯示下拉內容時發生事件,您可以處理CellClick事件,然後使用網格中的EditingControl,並將其投射到DataGridViewComboBoxEditingControl並使其顯示下拉菜單。

    private void categoryDataGridView_CellClick(object sender, DataGridViewCellEventArgs e) 
    { 
        //You can check for e.ColumnIndex to limit this to your specific column 
        var editingControl = this.categoryDataGridView.EditingControl as DataGridViewComboBoxEditingControl; 
        if (editingControl != null) 
         editingControl.DroppedDown = true; 
    } 
    
    • 使用這一招時要小心,你可能會使下拉菜單惱人的用戶時,他只希望在單擊單元格,而不需要進行編輯。
    相關問題