如果需要創建一個控件,要從UserControl、Control或者是Window窗體提供的其他類繼承。
UserControl適合用來做組合控件。Control需要自己實現控件的外觀等等,但靈活性高。Windwos控件當然就是能夠對現有的控件進行適當的擴展。
1)實現最基本的Label,輸出一段文字
首先從Control繼承一個類,這里我叫做XiLabel。我們實現下面的一段代碼。在文字里面繪制出Text
編譯一下,在一個Form上顯示出來是下面的樣子:
2)高度寬度跟這文字變化
在繪制前先計算文字的高度和寬度 。
3)修改控件的編輯模式,在編輯器里面不能夠改變控件的大小
引入System.Windows.Forms.Design;命名空間 並寫一個繼承ControlDesigner的類,代碼如下:
ControlDesigner 為從 Control 派生的組件的設計器提供基類。除了從 ComponentDesigner 類繼承的方法和功能外,ControlDesigner 還提供其他方法來支持在設計時擴展和改變關聯的 Control 的行為。【MSDN】
然后在XiLabel的上方加入一下代碼
好吧現在一個還算是完整的Label呈現在了我們的面前,是不是和自帶的Label很類似呢。






