2012-07-22 119 views
0

我在listbox中有多個文本項,我們將其稱爲ListBox1C#Winforms列表框項目

我一直在谷歌搜索,social.msdn.microsoft.com,和這裏。我無法弄清楚如何讓每個文本條目在選擇時都有所改變。

STRING1導致((value1 + value2)/2)

字符串2 cuases ((value3 + value4)/2)

STRING3導致((value5 + value6)/2)

林顯然新。

回答

3

您需要處理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

0

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