首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataGridViewComboBox -如何允许任何值?

DataGridViewComboBox -如何允许任何值?
EN

Stack Overflow用户
提问于 2010-11-20 06:04:31
回答 2查看 6.9K关注 0票数 8

我在使用VisualStudio 2010 C# Winforms时遇到了一些问题。

我已经创建了一个具有DataGridViewComboBoxColumn类型的未绑定列的DataGridView。这个列工作得很好,除了与普通的ComboBox不同,我似乎不能输入任何值。我被迫从列表中选择一个值。

是否有我需要设置的属性,或者我可以使用的另一种类型,除了提供一个从中挑选一个值的列表之外,还允许我在单元格中输入任何值?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-20 06:39:37

我不认为有一个属性会允许这一点,但我找到了一个答案here,它只做了一个小小的修改。

尝试添加以下两个事件处理程序,这里假设有一个名为comboBoxColumn的列

代码语言:javascript
复制
private void dataGridView1_EditingControlShowing(object sender, 
        DataGridViewEditingControlShowingEventArgs e)
{
    ComboBox c = e.Control as ComboBox;
    if (c != null) c.DropDownStyle = ComboBoxStyle.DropDown;
}

private void dataGridView1_CellValidating(object sender, 
        DataGridViewCellValidatingEventArgs e)
{
    if (e.ColumnIndex == comboBoxColumn.Index)
    {
        object eFV = e.FormattedValue;
        if (!comboBoxColumn.Items.Contains(eFV))
        {
            comboBoxColumn.Items.Add(eFV);
            dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = eFV;
        }
    }
}
票数 13
EN

Stack Overflow用户

发布于 2010-11-20 06:23:24

DataGridViewComboBoxColumn是为从可能的值中进行选择而设计的,而不是用于键入数据。如果您想要添加任何数据,您应该以编程方式为所需的DataGridViewComboBoxCell执行此操作:

代码语言:javascript
复制
((DataGridViewComboBoxCell)dataGridView1[0,0]).Items.AddRange(new string [] {"A","B","C"});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4229810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档