自定義控制項之限制控制項設計時改變大小

2021-10-03 13:14:54 字數 2380 閱讀 1857

有的時候自定義控制項,因為大小必須得固定,要不然可能不能滿足繪製效果或者一些需求。於是就有限制改變大小的必要了。

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布局中寫相同的標題欄布局 這種方式沒有任何布局復用的...