與繪製有關的函式
paint()
onpaint()
invalidate()
前兩個函式的執行順序,如果在onpaint()中有base.onpaint(e)函式,就相當於執行外部的paint()函式。
invalidate()執行後,會通知系統要重繪控制項,但是不是立即重繪,而是執行完所有程式之後再重繪。
protectedview codeoverride
void onpaint(painteventargs e)//
重寫onpaint方法
乙個控制項應該什麼時候繪製主要有兩個 :
乙個是 系統來確定 這個控制項需要繪製 比如 最小化後在最大化 那麼此時 系統會發出wm_paint 訊息來告知控制項 你需要重繪了
另乙個就是 人為的呼叫this.invalidate()或者this.invalidate(rectangle)來自己觸發一次重繪
自己開發的winform控制項通常有三種型別:復合控制項(composite controls),擴充套件控制項(extended controls),自定義控制項(custom controls)。
復合控制項:將現有的各種控制項組合起來,形成乙個新的控制項,將集中控制項的功能集中起來。
擴充套件控制項:在現有控制項的控制項的基礎上派生出乙個新的控制項,為原有控制項增加新的功能或者修改原有控制項的控能。
自定義控制項:直接從system.windows.forms.control類派生出來。control類提供控制項所需要的所有基本功能,包括鍵盤和滑鼠的事件處理。自定義控制項是最靈活最強大的方法,但是對開發者的要求也比較高,你必須為control類的onpaint事件寫**,你也可以重寫control類的wndproc方法,處理更底層的windows訊息,所以你應該了解gdi+和windows api。
本系列文章主要介紹自定義控制項的開發方法。
控制項(視覺化的)的基本特徵:
1. 視覺化。
2. 可以與使用者進行互動,比如通過鍵盤和滑鼠。
3. 暴露出一組屬性和方法供開發人員使用。
4. 暴露出一組事件供開發人員使用。
5. 控制項屬性的可持久化。
6. 可發布和可重用。
C 自定義控制項
做radiobutton button textbox的自定義控制項 先在工程分別新增3個類 然後分別在類裡面寫 diybutton.cs diytextbox.cs diyradiobutton.cs 寫好自定義控制項後就開始更改一些地方 窗體下有個窗體名.designer.cs開啟這個 檔案 更...
c 自定義控制項
第一步 新建乙個控制項庫專案 mycontrol 第二步 從工具箱裡面拖動1個picturebox 1個button 6個lable控制項到使用者介面上,布局如下 如上圖,設定picturebox的name為picbox,背景為白色,button的name為btnopen,另外靠左的三個lable的...
c 自定義控制項
vs怎麼自定義乙個控制項,這裡記錄乙個簡單的小例子。例子自定了picturebox這個控制項,將其形狀改寫成橢圓。首先講講如何自定義乙個控制項 1 建立乙個windows窗體空間庫的專案 2 專案輸出型別改為類庫,編譯生成,將生成的dll檔案複製到特定資料夾 3 在winform專案工具箱裡新增dl...