简体   繁体   English

如何给组合框赋予textvalue和value属性?

[英]How to give textvalue and value property to combobox?

I have one form in a Windows application as per below image: 我在Windows应用程序中有一种形式,如下图所示:

我的窗户

I try to use this code to display text in comboBox in "Designer.cs": 我尝试使用此代码在“ 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"});

It's OK with it, but I want to also pass a value type to access specific text display in combo box. 可以,但是我还想传递一个值类型来访问组合框中的特定文本显示。

So, how to pass that in my combo box? 那么,如何在我的组合框中传递它呢?

Unluckily, Win Form does not define ListItem like Web, but you can define your own class, then override ToString method: 不幸的是,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;
    }
}

Then you can use: 然后,您可以使用:

var item = new YourItem<string>() { 
             Text = "text", 
             Value = "value" 
       };

cmbLanguage.Items.Add(item);

To access value: 获得价值:

    var selectedItem = (YourItem<string>) cmbLanguage.SelectedItem;
    var value = selectedItem.Value;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM