C#Winforms列表框项目
问题描述:
我在listbox
中有多个文本项,我们将其称为ListBox1
。C#Winforms列表框项目
我一直在谷歌搜索,social.msdn.microsoft.com,和这里。我无法弄清楚如何让每个文本条目在选择时都有所改变。
即
STRING1导致((value1 + value2)/2)
字符串2 cuases ((value3 + value4)/2)
STRING3导致((value5 + value6)/2)
林显然新。
答
您需要处理ListBox.SelectedValueChanged
事件。
在主,或者通过使用设计,注册事件处理:
listBox1.SelectedValueChanged += listBox1_SelectedValueChanged;
然后,你的事件处理程序:
void listBox1_SelectedValueChanged(object sender, EventArgs e) {
string value = listBox1.SelectedValue as string;
if (value == null) return;
// What to do now?
switch(value) {
case "string1":
// Do something...
break;
case "string2":
// Do something...
break;
case "string3":
// Do something...
break;
}
}
答
可以使用SelectedIndexChanged事件时,项目执行代码选择。您可以测试SelectedIndex或SelectedItem以查看哪个项目已被选中。
private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (listBox1.SelectedItems.Count == 0)
return;
int selectedItemIndex = listBox1.SelectedIndex;
string selectedItemText = listBox1.SelectedItem.ToString();
// E.g.
this.Text = selectedItemText;
}
其给我一个错误'的呼叫是下列方法或属性之间暧昧:“Program.Form1.ListBox1_SelectedValueChanged(对象,System.EventArgs)”和“Program.Form1.ListBox1_SelectedValueChanged(对象,System.EventArgs )'' – 2012-07-22 01:16:59
我需要一些上下文来解决这个错误。什么呼叫?你确定你没有意外地定义处理器方法两次? – 2012-07-22 01:21:00
就是这样,感谢您的帮助。 – 2012-07-22 01:24:08