[英]How do I set a comboBox.selecteditem
我有:
ComboBox.DataSource = System.Enum.GetValues(typeof(ImageLayout));
但是如何將ComboBox.SelectedItem
設置為ImageLayout
值?
我試過了..
LayOutCB.SelectedItem = (int)ImageLayout.Center;
但我有一個例外
最初,我試圖在UserControl
的構造函數中設置SelectedItem
。
我添加了事件處理程序
this.Load += new EventHandler(PageSettings_Load);
然后在其中設置combobox.SelectedItem。
void PageSettings_Load(object sender, EventArgs e)
{
LayOutCB.SelectedItem = ImageLayout.Center;
}
現在工作得很好。
那是什么呢? 有人可以解釋一下。
你沒有嘗試過嗎?
ComboBox.SelectedItem = ImageLayout.Center
對我來說,它工作得很好。
關於您的更新,我相信您是在調用InitializeComponent()
之前設置SelectedItem
,並且尚未創建組合框,但給了您對象引用異常(已定義但未分配該框)。
嘗試這樣的事情:
ComboBox.SelectedItem = (int)ImageLayout.Foo;
將int
替換為枚舉的基礎類型。 老實說,它可能無需轉換即可工作,但我現在不在csc.exe
附近。
Windows.Forms中的ComboBox
控件是基礎Windows控件的包裝 。 這是一種常見的模式-大多數Windows.Forms控件都是這種包裝器。
在創建基礎Windows 句柄之前,無法設置ControlBox的某些屬性(如SelectedItem)。 通常,句柄的創建是在第一次顯示控件時發生的。
在用戶控件的構造函數中時,此代碼:
LayOutCB.SelectedItem = (int)ImageLayout.Center;
會因為句柄不可用而引發異常。 后來(在您的事件處理程序中)可以使用,因為該句柄可用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.