簡體   English   中英

如何設置comboBox.selecteditem

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM