自定義日期控制項的實現 WinForm版 原創

2022-02-07 00:41:02 字數 1091 閱讀 7281

先上圖。

要點:一.雙緩衝

this.setstyle(controlstyles.optimizeddoublebuffer |

controlstyles.resizeredraw |

controlstyles.allpaintinginwmpaint, true);

二.suspendlayout  &  resumelayout

臨時的掛起控制項屬性層

恢復掛起的控制項屬性層

三.堆控制項

initialmycalendar(date);

private void initialmycalendar(datetime date)

44else

4548

if(dt.compareto(date) ==0

)4953}54

catch

5558}59

if(selecteddaynode 

!=null)60

63//新增控制項

64this

.controls.addrange(monthnode);

65this

.drawallthenodes();

66this

.resumelayout();

}ps:

如何計算某月的天數?

timespan mytime = datetime.parse(today_year + "-" + today_month + "-01").addmonths(1).adddays(-1) - datetime.parse(today_year + "-" + today_month + "-01");

return mytime.days + 1;

四.寫委託事件     

//宣告事件部分

public event selectbuttonhandler onselect;

//呼叫部分

if (onselect != null)

關鍵的要點都在這裡了。

還可以根據實際的專案的情況擴充套件控制項。

最基本的:可以選取時間的textbox 控制項。

上圖中就是這個控制項的實現圖。

DuiLib實現自定義控制項

在duilib中實現自定義控制項,和qt過載類似,也是繼承原有的控制項只不過是要將這個控制項也能在xml中進行使用。當作xml中的乙個節點。下面就看一下我寫的乙個小例子,這個例子是過載了乙個按鈕 cbuttonui 過載cbuttonui的標頭檔案 subcontrol.h ifndef subco...

自定義控制項Image View的實現

一,設定自定義控制項所需屬性,此設定可用於xml布局,在布局檔案layout中設定繪製控制項所需的color,paintwidth等。在res values下的attrs檔案加入所需屬性 declare styleable中的name為layout中使用的控制項name,attr中指定屬性名及所屬型...

自定義控制項 自定義鐘錶

private context mcontext 畫筆 private paint mpaint 控制項的寬 private int mwidth x方向的圓心座標 private int center 鐘錶的半徑 private int mradio 圓環的寬 private int stroke...