编程语言
首页 > 编程语言> > c# – 在CheckedListBox中显示友好名称

c# – 在CheckedListBox中显示友好名称

作者:互联网

我正在将List中的项添加到CheckedListBox.我希望该框能够向用户显示项目的友好名称,但是当用户选择它时,它具有“秘密”实际值.

foreach (string s in x)
{
    checkedlistBox1.Items.Add(friendlyValue);
    //Now how do I get this to have the real value?
}

使用下拉菜单,我可以将DisplayName和ValueName设置为某些内容并使用以下内容:

combobox1.Items.Add(new ComboBoxItem { friendlyValue = x, realValue = y });

我似乎无法使用CheckedListBox执行此操作.

解决方法:

在CheckedListBox上设置DisplayMember和ValueMember属性.

它们在功能上等同于ComboBox的DisplayName和ValueName属性.

public class MyClass
{
    public string FriendlyValue { get; set; }
    public string RealValue { get; set; }
}

public class YourForm : Form
{
    public YourForm()
    {
        var friendlyList
            = new List<string>();  // imagine it's populated with friendly values

        foreach (var fv in friendlyList)
        {
            checkedListBox1.Items.Add(
                new MyClass { FriendlyValue = fv, RealValue = ??? });
        }

        checkedListBox1.DisplayMember = "FriendlyValue";
        checkedListBox1.ValueMember = "RealValue";        
    }
}

标签:c,winforms,checkedlistbox
来源: https://codeday.me/bug/20190629/1322623.html