2010-12-10 99 views
4

我的窗體上有一個組合框(winforms)。在屬性中,我設置了DisplayMember和ValueMember。 DisplayMember = Name和ValueMember = ID。組合框填入下列對象:Combobox selectedvalue

public class MyObj 
    { 
     public string Name 
     { 
      get; set; 
     } 

     public int ID { get; set; } 
    } 

的名稱將顯示在下拉罰款(所以DisplayMember工作),但是,當我做:

mycombobox.SelectedValue它總是空。

有誰知道我是否忘記做任何事情?

+0

你在哪裏檢查'mycombobox.SelectedValue'? – Bolu 2010-12-10 11:47:30

+0

這是一個按鈕的點擊事件。我也嘗試在組合框的SelectedIndexChanged事件上檢查它,但它在那裏也不工作。 – AndrewC 2010-12-10 11:50:07

+0

如果你做SelectedIndex或SelectedItem,你會得到什麼?你可以添加組合框的配置和填充代碼嗎? – 2010-12-10 11:50:18

回答

4

你有沒有設置DataSource屬性。另外,還要確保你必須設置他們在正確的順序 -

以下順序設置它們 -

1. DisplayMember 
2. ValueMember 
3. DataSource 

請參閱此鏈接 - http://social.msdn.microsoft.com/Forums/en/winformsdatacontrols/thread/211a46f5-5971-4ea2-a61d-84e389360909

或者您可以使用SelectedItem屬性來獲取所選的MyObj實例。

+0

謝謝,我結束了剛剛使用SelectedItem屬性和鑄造。 – AndrewC 2010-12-10 12:03:06

+0

感謝您的訂單評論!爲我節省了很多時間! – 2012-03-22 16:11:47

0

嘗試的SelectedItem

MyObj obj = (MyObj)mycombobox.SelectedItem; 
0

已選擇一個條目?選中並不總是一樣的可見。也許你真的想要mycombobox.Text。

0

我也有類似的錯誤。我設置了DisplayMember和ValueMember,但我設置了而不是DataSource Items.Insert。

相關問題