How do I get DataGridView comboboxes to display their drop down list in one click?

前端 未结 4 1343
故里飘歌
故里飘歌 2021-01-06 02:42

After I set \"EditOnEnter\" to be true, the DataGridViewComboBoxCell still takes two clicks to open if I don\'t click on the down arrow part of the combo box.

4条回答
  •  [愿得一人]
    2021-01-06 03:25

        protected override void OnEditingControlShowing(DataGridViewEditingControlShowingEventArgs e)
        {
            base.OnEditingControlShowing(e);
            DataGridViewComboBoxEditingControl dataGridViewComboBoxEditingControl = e.Control as DataGridViewComboBoxEditingControl;
            if (dataGridViewComboBoxEditingControl != null)
            {
                dataGridViewComboBoxEditingControl.GotFocus += this.DataGridViewComboBoxEditingControl_GotFocus;
                dataGridViewComboBoxEditingControl.Disposed += this.DataGridViewComboBoxEditingControl_Disposed;
            }
        }
    
        private void DataGridViewComboBoxEditingControl_GotFocus(object sender, EventArgs e)
        {
            ComboBox comboBox = sender as ComboBox;
            if (comboBox != null)
            {
                if (!comboBox.DroppedDown)
                {
                    comboBox.DroppedDown = true;
                }
            }
        }
    
        private void DataGridViewComboBoxEditingControl_Disposed(object sender, EventArgs e)
        {
            Control control = sender as Control;
            if (control != null)
            {
                control.GotFocus -= this.DataGridViewComboBoxEditingControl_GotFocus;
                control.Disposed -= this.DataGridViewComboBoxEditingControl_Disposed;
            }
        }
    

提交回复
热议问题