我在Windows应用程序中有一个表单,如下图所示:
我尝试使用此代码在“Designer.cs”中的comboBox中显示文本:
this.cmbLanguage.FormattingEnabled = true;
this.cmbLanguage.Items.AddRange(new object[] {
Language.LSelectLang.LANGUAGE_ENGLISH, //"English",
"Chinese_TC",
"Chinese_SC",
Language.LSelectLang.LANGUAGE_GERMAN, //"German",
Language.LSelectLang.LANGUAGE_FRENCH, //"French",
Language.LSelectLang.LANGUAGE_JAPANESE, //"Japanese",
Language.LSelectLang.LANGUAGE_SPANISH, //"Spanish",
Language.LSelectLang.LANGUAGE_HINDI}); //"Hindi"});
没关系,但是我想传递一个值类型来访问组合框中的特定文本显示。
那么,如何在我的组合框中传递它?
答案 0 :(得分:1)
不幸的是,Win Form没有像Web那样定义ListItem
,但你可以定义自己的类,然后覆盖ToString
方法:
public class YourItem<T>
{
public string Text { get; set; }
public T Value { get; set; }
public override string ToString()
{
return Text;
}
}
然后你可以使用:
var item = new YourItem<string>() {
Text = "text",
Value = "value"
};
cmbLanguage.Items.Add(item);
要访问价值:
var selectedItem = (YourItem<string>) cmbLanguage.SelectedItem;
var value = selectedItem.Value;