【问题标题】:How to edit databound combobox in c#如何在 C# 中编辑数据绑定组合框
【发布时间】:2014-11-10 14:59:40
【问题描述】:

在我的 winForm 应用程序中,我在 datagridview 中添加了数据绑定组合框列。用户需要能够从下拉列表中选择一个项目或在组合框中写入。但它不会让我在设置数据源时在组合框中写入。这是我的代码:

var entityModel= new AdminEntities();
var filterPractice = (from b in entityModel.FILTER where b.PRACTICE != null select b.PRACTICE).Distinct().OrderBy(y => y);
dgvCboColumn(filterPractice, "PRACTICE");
private void dgvCboColumn(dynamic item, string colName)
    {
        int i = dgvLoadTable.Columns[colName].Index;
        DataGridViewComboBoxColumn dgvCol = new DataGridViewComboBoxColumn();
        dgvCol.DataSource=item;
        dgvCol.DataPropertyName = colName;
        dgvLoadTable.Columns.Insert(i, dgvCol);
        dgvLoadTable.Columns[i].HeaderText = dgvLoadTable.Columns[i + 1].HeaderText;
        dgvLoadTable.Columns[i + 1].Visible = false;
        dgvLoadTable.Columns.RemoveAt(i + 1);
    }
  private void HandleEditShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        var cbo = e.Control as ComboBox;
        if (cbo == null)
        {
            return;
        }

        cbo.DropDownStyle = ComboBoxStyle.DropDown;
        cbo.Validating -= HandleComboBoxValidating;
        cbo.Validating += HandleComboBoxValidating;
    }
    private void HandleComboBoxValidating(object sender, CancelEventArgs e)
    {
        var combo = sender as DataGridViewComboBoxEditingControl;
        if (combo == null)
        {
            return;
        }
        if (!combo.Items.Contains(combo.Text)) 
        {
            var comboColumn = this.dgvLoadTable.Columns[this.dgvLoadTable.CurrentCell.ColumnIndex] as DataGridViewComboBoxColumn;
            combo.Items.Add(combo.Text);
            comboColumn.Items.Add(combo.Text);
            this.dgvLoadTable.CurrentCell.Value = combo.Text;
        }
    }

谁能告诉我如何使组合框可编辑?

【问题讨论】:

    标签: c# winforms datagridview combobox


    【解决方案1】:

    您可以使用 Oledb 或 Ado 记录集手动获取数据源中的项目,然后使用 for 循环手动填充 de comboBox.. 所以基本上您也可以编辑项目..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-09
      • 2014-02-03
      • 2011-08-25
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 2010-11-22
      相关资源
      最近更新 更多