我想繼承類System.Windows.Forms.Textbox, 並將其默認的BackColor屬性更改爲別的東西。在.NET C#中:繼承控件Texbox,並更改默認的BackColor
這樣做的最佳方法是什麼?
這需要2個部分:
1)在我的繼承類,我應該在哪裏把 base.BackColor = Color.FromArgb(0x55,0x55,0xFF); line:在Ctor中?在初始化?加載?其他地方?這裏是最合適..
2)當我設置的默認值屬性,我怎麼給它一個參數,它是一個顏色類型? 如果我給一個int,如0x5555FF,那麼稍後當我在Visual Studion的Designer中, 如果我點擊我的控件實例上的Backcolor屬性,然後RightClick屬性並選擇「Reset」,那麼我得到一個錯誤: 「類型'System.Int32'的對象不能轉換爲'System.Drawing.Color'類型。」
IDE期望DefaultValue屬性中的值爲一個Color結構體,而不是一個int .. 但是,在屬性中我無法發送Color結構,那麼解決方案是什麼?
非常感謝您
[默認值(typeof運算(顏色),「255,0, 0「)] 工程太棒了!非常感謝您 – Omer 2014-12-02 14:06:29
然而,「公衆覆蓋顏色的BackColor {獲得;設置;}」的一部分,使我TextBo出現一個黑色背景..只有當我把它寫了很長的路要走:公共\t覆蓋\t顏色\t背景色 \t \t { \t \t \t得到\t \t {\t return(base.BackColor); \t \t} \t \t \t \t設置{\t \t \t base.BackColor =值; \t \t} \t \t}那麼它工作正常..爲什麼? – Omer 2014-12-02 14:06:59
@Omer:長途調用基本類型的BackColor,它實際上改變了顏色(使用Win32魔術)。簡短版本是一個自動屬性,基本上只是將派生類中的顏色存儲在新字段中,並且不會對其執行任何操作。 – siride 2014-12-02 14:21:44