先上圖。
要點:一.雙緩衝
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...