我正在使用datagridviewcomboboxcell显示值。我希望这个单元格的值是int。但是:当我打开组合框时,我希望看到组合框中每个项目的描述。当我选择一个值时,这个值会改变(组合框被关闭),而可见值只是int。有没有人有想法如何做到这一点?datagridview中的c#组合框
喜欢:选择的项目:2
扩展组合框:0 - 烯 1 - 由于 2 - 日科 3 - 假 感谢您的帮助。
我正在使用datagridviewcomboboxcell显示值。我希望这个单元格的值是int。但是:当我打开组合框时,我希望看到组合框中每个项目的描述。当我选择一个值时,这个值会改变(组合框被关闭),而可见值只是int。有没有人有想法如何做到这一点?datagridview中的c#组合框
喜欢:选择的项目:2
扩展组合框:0 - 烯 1 - 由于 2 - 日科 3 - 假 感谢您的帮助。
即使你会找到一种设置TextField和ValueField的方法,我严重怀疑当控件显示下拉列表(数字和文本)时,会有不同的文本呈现,并且它已折叠并仅显示为下拉列表关闭(仅限数量)。
你问的东西当然有意义,但是你不会为了设置几个属性而毫不费力地运行它。
在Windows处理这种形式,你应该拦截事件:EditingControlShowing,并在那里,对于组合框,指定自定义值的控制,这里是一个起点:
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...
}
}
嗯。也许我误解了这个问题。我的回答不起作用,如果这是他想要做的... –
她。感谢帮助;) – santBart
您需要将ValueMember
属性设置为您的对象中的任何属性都是“id”。要设置可见文本,请将属性设置为DisplayMember
属性。如果此数据网格绑定到数据库记录或某种类型,则上面提到的属性应该是要绑定的表字段的名称。
valuemember和displaymember的addit如何对items.add方法进行核对? – santBart
假设您绑定了一个对象列表,烘焙到DataGridView中的代码将搜索对象中与您附加到上述属性的名称匹配的属性名称。 –
你很可能需要设置DataTextField和DataValueField属性。 –
我不明白。 WHERE在datagridviewcomboboxcell类不是textfieldcelll – santBart
这是一个WinForm或WebForm(ASP.NET)项目? –