【问题标题】:How to create combobox cell with DisplayStyle ComboBoxList?如何使用 DisplayStyle ComboBoxList 创建组合框单元格?
【发布时间】:2011-12-15 12:14:25
【问题描述】:

我有 datagridview 和带有单元格 DataGridViewComboboxCell 的列。 DisplayStyle 设置为 Nothing。 当我开始在此单元格中输入时,其样式会更改为组合框。而且我无法提供我的 tekst,因为根据我提供的文本进行单元格搜索项。 我想将其样式更改为组合框列表,因为它在组合框中。我有一个空白字段,我可以在其中输入我的文本。可以在组合框中执行此操作吗?

谢谢

【问题讨论】:

  • 我认为您正在寻找自动完成组合框类型.....

标签: c# datagridview datagridcomboboxcolumn


【解决方案1】:

你可以这样尝试..

    public void ComboList1()
    {
        DataGridViewComboBoxColumn combo1 = new DataGridViewComboBoxColumn();
        combo1.HeaderText = "Country";
        combo1.Items.Add("Antarctica");
        combo1.Items.Add("Belgium");
        combo1.Items.Add("Canada");
        combo1.Items.Add("Finland");
        combo1.Items.Add("Albania");
        combo1.Items.Add("India");
        combo1.Items.Add("Barbados");
        dataGridView1.Columns.Add(combo1);
    } 
    public void ComboList2()
    {
        DataGridViewComboBoxColumn combo2 = new DataGridViewComboBoxColumn();
        combo2.HeaderText = "Types of Jobs";
        combo2.Items.Add("Accounting");
        combo2.Items.Add("HR");
        combo2.Items.Add("Finance");
        combo2.Items.Add("Transportation");
        combo2.Items.Add("Testing");
        dataGridView1.Columns.Add(combo2);
    }

从表单构造函数中调用这两个方法。

现在点击 DataGridView 并生成 EditingControlShowing 事件并在其中编写以下代码:

        if (e.Control is DataGridViewComboBoxEditingControl)
        {
            ((ComboBox)e.Control).DropDownStyle = ComboBoxStyle.DropDown;
            ((ComboBox)e.Control).AutoCompleteSource = AutoCompleteSource.ListItems;
            ((ComboBox)e.Control).AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Suggest;
        }

或者这样试试

private string[] list;
private DataSet ds;

public frmMain()
{
  InitializeComponent();
  ds = this.GetDataSet("SELECT deptName from empDept", "empDept");
  list = new string[ds.Tables[0].Rows.Count];
  comboBox1.AutoCompleteCustomSource.AddRange(list);
  comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
  comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
}


private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
  if (e.Control is ComboBox)
  {
    ComboBox cb = e.Control as ComboBox;
    cb.DropDownStyle = ComboBoxStyle.DropDown;

  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多