2011-02-02 59 views
0

我正在做一個項目,其中「ToString」被用作一種方法。從組合框(字符串)檢查值沒有ToString C#

private void button1_Click(object sender, EventArgs e) 
{ 
    if(cboPlaneType.SelectedItem = "Generic") 
    { 
    } 
    else if (cboPlaneType.SelectedIndex = "Passenger") 
    { 
    } 
    else if (cboPlaneType.SelectedIndex = "Fighter Jet") 
    { 
    } 
} 

而在這種情況下,我不知道該怎麼做。正如你可以看到我已經嘗試了一些不同的選擇,但沒有用。我也試過 if((string)cboPlaneType.SelectedItem = "Generic") 而且沒有奏效。

**編輯 只需指出,SelectedValue不是正確的答案。 結束了「if((string)combobox.SelectedItem == "Generic")

+0

你是什麼意思用*「哪裏」ToString「被用作方法」*?另外,上面的代碼不會編譯(因爲你在if語句中做了賦值而不是比較)。你真的想要達到什麼目標? – 2011-02-02 15:12:00

+0

根據選定的值,我假設在主窗體一側顯示標籤中的某些信息。我只是說它被覆蓋。 – 2011-02-02 15:16:47

回答

2

在C#中的平等經營者==;?=是賦值運算符

SelectedIndex將返回一個int,表示所選項目的從零開始的位置(我猜它在沒有選擇項目時返回-1)。

SelectedItem可以是任何類型的對象;如果它不是一個字符串,那麼你不能通過與一個字符串比較來匹配它。

你是說ComboBox被填充的對象覆蓋ToString()?您仍然可以使用該方法的結果進行比較,因爲它只能返回string。否則,您可能可以使用SelectedValue,但這取決於您使用的是什麼種類的ComboBox以及如何設置它。

1

SelectedIndexInt32類型的屬性 也許你想使用SelectedValue代替

+0

「錯誤不能將類型'object'隱式轉換爲'bool'。存在明確的轉換(您是否缺少轉換?)」 當我嘗試並執行此操作時。 – 2011-02-02 15:10:36