在重寫tabcontrol的時候我們最先想到的是設定
this.drawmode = tabdrawmode.ownerdrawfixed;
然後重寫
protectedoverride
void ondrawitem(drawitemeventargs e)
這樣重寫後只是重寫選項卡上的區域,這個區域並不包括邊框,這樣我們所重寫的和邊框不搭調,也無法達到我們想要的功能 。
而更好的方法是重寫整個控制項
privatevoid setstyles()
關鍵的地方在 controlstyles.userpaint 設定為true
protectedoverride
void onpaint(painteventargs pe)
}
this.gettabrect函式可以獲取的標籤的位置,這個為我們重繪標籤提供了很好的幫助
privatevoid drawtabpage(graphics graphics, rectangle rectangle, tabpage tp)
else
我們給標籤加上了乙個滑鼠移上去顯示關閉按鈕的功能 重寫onmousemove的功能
bool closeex = false;protected
override
void onmousemove(mouseeventargs e)
base.onmousemove(e);
}
在滑鼠移動過快的時候,會導致關閉按鈕沒有重新整理,所有我們要在滑鼠離開控制項的時候讓closeex=false並重繪製。
好到這一步我們就完成我我們的繪製工作 。我在繪製的時候使用了漸變畫刷用了5個引數來標識每個指定的顏色
private color _linecolor = color.fromargb(157, 162, 168); //邊線顏色private color _colordefaulta = color.fromargb(231, 231, 231);//預設標籤漸變 a
private color _colordefaultb = color.fromargb(255, 255, 255);//預設標籤漸變 b
private color _coloractivatea = color.fromargb(184, 203, 217);//點選漸變a
private color _coloractivateb = color.fromargb(255, 255, 255);//點選漸變a
golang寫的乙個分頁控制項。
直接放 吧,基本不用改,直接用了。package components import math date 2019 04 01 description 分頁控制項 pages 分頁控制項 type pages struct startrecord 設定分頁查詢時起始位置 func p pages s...
編寫乙個c 工程
c 接觸的很少,之前也只是會編寫乙個簡單的cpp檔案,但乙個工程的實現,往往不僅包括原始檔 cpp字尾檔案 一般還有標頭檔案 h字尾檔案 等。乙個c 工程中只能有乙個main函式,這個函式所在的檔案類似於前端中的入口檔案,即從main函式開始執行整個工程。即有多個cpp檔案,這些檔案中也只有乙個入口...
c 控制項編寫 (1)自定義乙個Label
如果需要建立乙個控制項,要從usercontrol control或者是window窗體提供的其他類繼承。usercontrol適合用來做組合控制項。control需要自己實現控制項的外觀等等,但靈活性高。windwos控制項當然就是能夠對現有的控制項進行適當的擴充套件。首先從control繼承乙個...