【问题标题】:Datagridview ComboBoxCell set default value?Datagridview ComboBoxCell 设置默认值?
【发布时间】:2012-08-23 11:11:58
【问题描述】:

我有一个包含大量数据的 datagridview,当我添加新行时,第一列的最后一行会创建一个包含四个项目的新 ComboBoxCell。但我无法为组合框设置默认值(“DropDown”)。每次我必须手动选择“DropDown”。解决办法是什么?

 DataGridViewComboBoxCell dgvCell = new DataGridViewComboBoxCell();
 dgv[1, dgv.Rows.Count - 1] = dgvCell;

 string[] controltype = {"DropDown", "CheckBoxList", "ListControl", "Tree" };
 dgvCell.DataSource = controltype;

【问题讨论】:

  • 该行代表什么:dgv[1, dgv.Rows.Count - 1] = dgvCell;
  • 将comboboxcell添加到datagridview的最后一行第一列。
  • dgvCell.Value = controltype[0]; 这样的行不起作用?

标签: c# .net datagridview combobox


【解决方案1】:
private void dataGridView_DefaultValuesNeeded(object sender, DataGridViewRowEventArgs e)
    {
        e.Row.Cells[4].Value = "DropDown";
    }

【讨论】:

    【解决方案2】:

    很简单,如果您的 DataGrid 视图中有一个 ComboBox 列,并且您想知道组合框的选定索引是什么,那么您需要这样做: 1、处理DataGrid View的EditingControlShowing事件。在这个事件处理程序中,检查当前列是否是我们感兴趣的。然后我们创建一个临时的 ComboBox 对象并获取选中的索引:

    代码

    private void dataGridView1_EditingControlShowing(object sender,
    DataGridViewEditingControlShowingEventArgs e)
    {
    if (dataGridView1.CurrentCell.ColumnIndex == 0)
    {
    // Check box column
    ComboBox comboBox = e.Control as ComboBox;
    comboBox.SelectedIndexChanged += new EventHandler(comboBox_SelectedIndexChanged);
    }
    }
    
    void comboBox_SelectedIndexChanged(object sender, EventArgs e)
    {
    int selectedIndex = ((ComboBox)sender).SelectedIndex;
    MessageBox.Show("Selected Index = " + selectedIndex);
    }
    

    【讨论】:

      【解决方案3】:

      尝试:

      if(!isPostBack)
        {
         dgvCell.SelectedItem=controltype[0].toString(); 
        }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-01-10
        • 2016-05-10
        • 1970-01-01
        • 2011-10-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多