2008-12-27 36 views
1

我想用ReadOnly屬性擴展System.Windows.Forms.ComboBox控件,當ReadOnly = true時它將顯示選定項目的文本(類似於標籤)。 (我不喜歡通過設置Enabled = false來實現殘疾人的效果)Extend System.Windows.Forms.ComboBox

如何在winforms中執行此操作?這在ASP.NET中非常簡單,我只需要重寫Render方法。然而,對於winforms來說,這似乎並不那麼簡單。

從我所收集我需要

一)重寫OnPaint方法

B)呼叫this.SetStyle(ControlStyles.UserPaint,真正的),這樣的OnPaint被調用。

但現在好像我必須自己做所有的繪畫。真的嗎?當ReadOnly = false時,是否無法讓基本ComboBox處理繪製控件?另外,我應該使用什麼ControlStyles?

回答

0

將一個ComboBox控件放在UserControl上。 UserControl會通過大多數屬性和事件,但是爲了響應.ReadOnly屬性,它會隱藏ComboBox控件並顯示ReadOnly編輯框。

+0

我可以通過我的控件自動傳遞組合框的屬性和事件嗎? – Preets 2008-12-28 05:02:36

1

做什麼窗口做。
組合框中只有1個項目,讓它被選中並啓用。