首页 > 解决方案 > 向列表框项添加值。C#

问题描述

我有一个列表框,里面有我想要的信息。但是,当用户在特定行上选择时,我需要发送一个数字。

列表框数据:

Test1
Test2
Test3

例如,当我在列表中选择 Test1 时,我需要返回整数 2。我问是否无论如何我可以分配数字 2 与之关联"Test2"

listbox.Items.Add("Name displayed on list", value);

标签: c#winformslistbox

解决方案


是的,ListBox Items 是类型object,你可以为它们分配任何对象,所以构建一个像这样的类:

public class ListItem
{
    public string Name {get; set;}
    public int Value {get; set;}

    public override string ToString()
    {
         return Name;
    }
}

现在您可以像这样添加 ListBox 项:

listbox.Items.Add(new ListItem { Name = "Test1", Value = 2});

当一个 ListBox 项目被选中时,你可以得到它的值,如:

var value = ((ListItem)listbox.SelectedItem).Value;

请注意,由于 ListBox 使用其 Items.ToString()方法来创建要显示的文本,因此您必须ToString()像这样覆盖它的方法:

public override string ToString()
{
    return Name;
}

否则它将显示类的名称而不是您想要的值。


推荐阅读