有的時候自定義控制項,因為大小必須得固定,要不然可能不能滿足繪製效果或者一些需求。於是就有限制改變大小的必要了。
1.新增引用system.design
然後新增乙個自定義控制項類
imports
system.windows.forms.design
imports
system.componentmodel
public
class nonsizeablectrl
inherits usercontrol
private setsize as
newsize
(100
,100
)public
overrides
property maximumsize as
size
getreturn setsize
endgetset
(value as
size
)mybase.maximumsize = value
endsetend
property
public
overrides
property minimumsize as
size
getreturn setsize
endgetset
(value as
size
)mybase.minimumsize = value
endsetend
property
endclass
如上我重寫了最大值和最小值屬性並且設定為長寬100
現在看一下效果:
目的是達到了,可是這樣是不是還是有改變大小時的箭頭,現在我們去掉它。
public
class nosizeabledesigner
inherits controldesigner
public
overrides
readonly
property selectionrules as selectionrules
getreturn windows.forms.design.selectionrules.moveable
endgetend
property
endclass
如**所示,繼承乙個controldesigner類,重寫selectiorules,這個屬性的作用是設計時移動控制項的方式。
列舉有很多種
摘抄msdn如下字段值
功能allsizeable
15指示元件支援在各個方向調整大小。
bottomsizeable
2指示元件支援從底端調整大小。
leftsizeable
4指示元件支援從左邊調整大小。
locked
-2147483648
指示元件被鎖定到其容器。 重寫此列舉的 moveable、allsizeable、bottomsizeable、leftsizeable、rightsizeable 和 topsizeable 位標誌。
moveable
268435456
指示元件支援允許將它移動到螢幕上的位置屬性。
none
0指示沒有特殊選擇特性。
rightsizeable
8指示元件支援從右邊調整大小。
topsizeable
1指示元件支援從頂端調整大小。
visible
1073741824
指示元件具有某種形式的可視使用者介面並且選擇服務正圍繞此使用者介面繪製選擇邊框。 如果所選元件具有此規則集,可假定此元件實現 icomponent,並且它與對應的設計器例項關聯。
我現在選擇的是只移動的方式,這樣的話就可以消去四周的箭頭
先把特性標記到控制項頭上
gettype
(nosizeabledesigner)
)>
public
class nonsizeablectrl
效果如圖:
現在四周的點已經消去了,即使把滑鼠放在上面也不會顯示改變大小的箭頭了。不僅是消去箭頭,實際上即使沒有上面maxinumsize和minisize的重寫,我們一樣在設計時無法改變大小,之所以要重寫上面兩個屬性,是為了避免使用者用**改變大小。
自定義控制項實踐 倒計時控制項
目前專案中用到了乙個倒計時控制項,覺的還不錯.所以分享出來.有需要的同學可以直接拿去用.廢話不多說,先看看效果 jdfw.gif 實現乙個自定義控制項,先分析控制項的初始狀態和構成.override protected void ondraw canvas canvas 複製 開始倒計時 publi...
Android自定義控制項之自定義組合控制項(三)
前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...
Android自定義控制項之自定義組合控制項
前兩篇介紹了自定義控制項的基礎原理android自定義控制項之基本原理 一 自定義屬性android自定義控制項之自定義屬性 二 今天重點介紹一下如何通過自定義組合控制項來提高布局的復用,降低開發成本,以及維護成本。1.第一種方式 直接在每個xml布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...