在 CheckedListBox 中显示友好名称

Nat*_*kle 5 c# checkedlistbox winforms

我正在将列表中的项目添加到 CheckedListBox。我希望该框向用户显示项目的友好名称,但在用户选择它时有一个“秘密”实际值可供使用。

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

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

combobox1.Items.Add(new ComboBoxItem { friendlyValue = x, realValue = y });
Run Code Online (Sandbox Code Playgroud)

我似乎无法用 CheckedListBox 做到这一点。

Gra*_*ICA 5

设置DisplayMember和 的ValueMember属性CheckedListBox

这些在功能上等同于 的DisplayNameValueName属性ComboBox

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";        
    }
}
Run Code Online (Sandbox Code Playgroud)

  • @Sephethus 由于某种原因,微软对智能感知隐藏了这些属性。但当你设置它就会起作用:) (2认同)