C#Winforms列表框项目

问题描述:

我在listbox中有多个文本项,我们将其称为ListBox1C#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; 
    } 
} 
+0

其给我一个错误'的呼叫是下列方法或属性之间暧昧:“Program.Form1.ListBox1_SelectedValueChanged(对象,System.EventArgs)”和“Program.Form1.ListBox1_SelectedValueChanged(对象,System.EventArgs )'' – 2012-07-22 01:16:59

+1

我需要一些上下文来解决这个错误。什么呼叫?你确定你没有意外地定义处理器方法两次? – 2012-07-22 01:21:00

+0

就是这样,感谢您的帮助。 – 2012-07-22 01:24:08

可以使用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; 
    }