数据网格视图中的c#combobox

时间:2011-09-05 20:13:17

标签: c# forms datagridview combobox

我使用datagridviewcomboboxcell来显示值。我希望这个单元格值是int。但是:当我打开组合框时,我希望在组合框中看到每个项目的描述。当我选择一个值时,值变化(组合框关闭),可见值仅为int。有谁知道如何做到这一点?

喜欢:所选项目:2

扩展的组合框:0 - 烯                         1 - 到期                         2 - 喜欢                         3 - 假的 谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

即使您找到了设置TextField和ValueField的方法,我也会严重怀疑您在控件显示下拉列表(数字和文本)时会呈现不同的文本,并且它会折叠并仅显示为下拉关闭(仅限编号)。

你所要求的是理所当然的,但你不会只是设置一些属性就能让它运行。

要在Windows窗体中处理此事件,您应截取事件: EditingControlShowing ,在那里,对于ComboBox,指定控件的自定义值,这是一个起点:

 void dataGridView1_EditingControlShowing(object sender,
            DataGridViewEditingControlShowingEventArgs e)
        {
            if (e.Control is ComboBox)
            {
                ComboBox cmb = e.Control as ComboBox;

                // here you can work on the ComboBox...
            }
        }

有关详情,请点击此处:DataGridView.EditingControlShowing Event

答案 1 :(得分:0)

您需要将ValueMember属性设置为对象中的任何属性为“id”。要设置可见文本,请为DisplayMember属性指定要显示的对象的属性。如果此数据网格绑定到数据库记录或某种类型,则上述属性应该是您要绑定的表字段的名称。