0

我在 Windows 应用程序中有一个表单,如下图所示:

我的窗口来自

我尝试使用此代码在“Designer.cs”的组合框中显示文本:

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"});

没关系,但我还想传递一个值类型来访问组合框中的特定文本显示。

那么,如何在我的组合框中传递它?

4

1 回答 1

1

不幸的是,Win Form 并没有ListItem像 Web 那样定义,但是你可以定义自己的类,然后重写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;
于 2012-09-24T06:07:34.510 回答