DataGridViewComboBoxCell ComboBox不会出现

时间:2018-05-09 08:39:53

标签: c# winforms datagridview

在使用EditMode设置datagridview之前:EditProgrammatical ComboBox按预期显示。

设置EditMode:EditProgrammatical后,需要在箭头上单击2-3次才能显示选择项目。

private void suggestButton_Click(object sender, EventArgs e)
{
  var dict = getSuggestDict();
  var dataGridViewComboBoxCell = new DataGridViewComboBoxCell
  {
    DataSource = dict.Keys.ToList();
  };

  dataGridView[selectedColumn, selectedRow] = dataGridViewComboBoxCell;
}

该功能简化了一点,以避免不必要的并发症。

1 个答案:

答案 0 :(得分:1)

您需要启用编辑并将焦点设置为问题单元格,以便在单击时打开组合下拉列表。

 private void suggestButton_Click(object sender, EventArgs e)
        {
            var dict = getSuggestDict();
            var dataGridViewComboBoxCell = new DataGridViewComboBoxCell
            {
                DataSource = dict.Keys.ToList()
            };


            dataGridView[selectedColumn, selectedRow] = dataGridViewComboBoxCell;
            dataGridView.CurrentCell = dataGridView.Rows[selectedRow].Cells[selectedColumn];
            dataGridView.BeginEdit(false);
        }

已编辑:已移动设置当前单元格并在按钮单击事件处理程序启动时启用编辑模式,以确保在替换组合框内容时处于编辑模式。

private void suggestButton_Click(object sender, EventArgs e)
{    
  dataGridView.CurrentCell = dataGridView.Rows[selectedRow].Cells[selectedColumn];
   dataGridView.BeginEdit(true);

     var dict = getSuggestDict();
     var dataGridViewComboBoxCell = new DataGridViewComboBoxCell
     {
        DataSource = dict.Keys.ToList()
     };


dataGridView[selectedColumn, selectedRow] = dataGridViewComboBoxCell;

}