向列表框项添加值。 C#
Adding a value to a listbox item. C#
我有一个列表框,里面有我想要的信息。但是,当用户 select 在特定行上时,我需要发送一个数字。
列表框数据:
Test1
Test2
Test3
例如,当我 select Test1 在我的列表中时,我需要 return 整数 2。我想问是否可以分配数字 2 与 "Test2"
listbox.Items.Add("Name displayed on list", value);
是的,ListBox 项是 object
类型,您可以将任何对象分配给它们,因此构建一个 class 如下:
public class ListItem
{
public string Name {get; set;}
public int Value {get; set;}
public override string ToString()
{
return Name;
}
}
现在您可以像这样添加列表框项目:
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;
}
否则它将显示 class 的名称而不是您想要的值。
如前所述,您可以指定 listBox
的 DataSource
,然后您可以方便地使用 ListBox
的 SelectedValue
class。但在此之前,您还必须指定列表框的 ValueMember
和 DisplayMember
。
我认为最方便的方法是将 Tuple<string, int>
个对象添加到您的列表框中,并将 ValueMember
设置为 "Item2"
并将 DisplayMember
设置为 "Item1"
,因为 Item1
将是我们的字符串 Test1
和 Item2
将是整数值。
代码示例:
listBox1.ValueMember = "Item2";
listBox1.DisplayMember = "Item1";
listBox1.DataSource = new Tuple<string, int>[] {
new Tuple<string, int>("Test1", 1),
new Tuple<string, int>("Test2", 2)
};
现在,在代码中,您只需使用 listBox1.SelectedValue
即可访问所选项目的整数值。
我有一个列表框,里面有我想要的信息。但是,当用户 select 在特定行上时,我需要发送一个数字。
列表框数据:
Test1
Test2
Test3
例如,当我 select Test1 在我的列表中时,我需要 return 整数 2。我想问是否可以分配数字 2 与 "Test2"
listbox.Items.Add("Name displayed on list", value);
是的,ListBox 项是 object
类型,您可以将任何对象分配给它们,因此构建一个 class 如下:
public class ListItem
{
public string Name {get; set;}
public int Value {get; set;}
public override string ToString()
{
return Name;
}
}
现在您可以像这样添加列表框项目:
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;
}
否则它将显示 class 的名称而不是您想要的值。
如前所述,您可以指定 listBox
的 DataSource
,然后您可以方便地使用 ListBox
的 SelectedValue
class。但在此之前,您还必须指定列表框的 ValueMember
和 DisplayMember
。
我认为最方便的方法是将 Tuple<string, int>
个对象添加到您的列表框中,并将 ValueMember
设置为 "Item2"
并将 DisplayMember
设置为 "Item1"
,因为 Item1
将是我们的字符串 Test1
和 Item2
将是整数值。
代码示例:
listBox1.ValueMember = "Item2";
listBox1.DisplayMember = "Item1";
listBox1.DataSource = new Tuple<string, int>[] {
new Tuple<string, int>("Test1", 1),
new Tuple<string, int>("Test2", 2)
};
现在,在代码中,您只需使用 listBox1.SelectedValue
即可访问所选项目的整数值。