C# 需要为组合框项(字符串)指定(int)值的帮助吗
我正在用C语言创建一个带有下拉框组合框的程序。我想让用户从框中选择项目,但我需要为项目分配一个整数值,以便我可以执行一些数学运算 但是,如果我尝试添加这样的值,它将不起作用C# 需要为组合框项(字符串)指定(int)值的帮助吗,c#,combobox,C#,Combobox,我正在用C语言创建一个带有下拉框组合框的程序。我想让用户从框中选择项目,但我需要为项目分配一个整数值,以便我可以执行一些数学运算 但是,如果我尝试添加这样的值,它将不起作用 this.selectquest.Items.AddRange(new object[] { "Level 51", int 5000000 "Level 52", int 5000000 "Level 53", int 5000000}); 哈哈,这看起来可能很可笑,但是是
this.selectquest.Items.AddRange(new object[] {
"Level 51", int 5000000
"Level 52", int 5000000
"Level 53", int 5000000});
哈哈,这看起来可能很可笑,但是是的
因此,我试图找出如何向组合框中的字符串添加特定的int值,以便让程序在最后执行数学运算。只需将它们作为字符串添加到组合框中即可。然后,在提交表单时,您必须将其转换回INT,如:
int value = Convert.ToInt32(cbo.selectedValue);
您可以为此使用类,例如:
public class Level
{
public string Name { get; set; }
public int Number { get; set; }
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var selectedValue = (int)comboBox1.SelectedValue;
}
创建级别的列表
var list = new List<Level>
{
new Level {Name = "Level 51", Number = 123214},
new Level {Name = "Level 52", Number = 32343},
new Level {Name = "Level 53", Number = 32343}
};
然后,您可以在SelectedIndexChanged事件中轻松获取所选值,例如:
public class Level
{
public string Name { get; set; }
public int Number { get; set; }
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var selectedValue = (int)comboBox1.SelectedValue;
}
使用如下自定义类:
class Level
{
public string Name { get; set; }
public int Value { get; set; }
}
然后将您的级别添加到组合框:
this.selectquest.Items.AddRange(new Level[] {
new Level() {Name = "Level 51", Value = 5000000},
new Level() {Name = "Level 52", Value = 5000000},
new Level() {Name = "Level 53", Value = 5000000}
});
最后,在SelectedIndexChanged中,执行以下操作
private void selectquest_SelectedIndexChanged(object sender, EventArgs e)
{
var v = selectquest.SelectedItem as Level;
int x = v.Value;
}
编辑:忘记添加:
selectquest.DisplayMember = "Name";
干杯!你打字很快:-谢谢你。它没有给我任何错误,但现在我的组合框中的所有字符串值都显示为:Name\u of_form.level,因此字符串值没有正确显示。@Advancin:您需要设置组合框的ValueMember和DisplayMember属性。请参阅我的更新。因为我的解决方案不使用数据源,所以实际上不需要ValueMember。@Lucmorin先生:是的,您的解决方案不需要ValueMember,很抱歉编辑错误。