禁止調整自定義控制項的尺寸

2022-05-07 14:33:10 字數 833 閱讀 4128

有時我們在自定義控制項時,出於某種原因的考慮(比如:防止在設計時誤操作),想禁止調整自定義控制項的尺寸(height 或 width)。最初我是這樣實現的,這也是較簡單的方法:

public class mybutton : system.windows.forms.button

}但是我對這樣的效果不太滿意,要是能實現像textbox那樣,在設計時上下邊緣的小方塊是灰的,而左右邊緣的小方塊是白的(表示無法調整其height),那該有多酷!經過一番研究和到csdn上求助,終於解決了此問題,效果如下圖所示:

1、建立自定義控制項設計器類。

/// 

/// 自定義控制項設計器類

/// 

public class mybuttondesigner : system.windows.forms.design.controldesigner

public override selectionrules selectionrules}}

2、給自定義控制項類新增屬性,將該控制項類與上面定義的設計器類關聯起來。

[designer(typeof(mybuttondesigner))]

public class mybutton : system.windows.forms.button

經過以上處理,就實現了上述效果。不過如果再仔細研究一下,你會發現這只在設計時有效,而在執行時,還是能夠改變該控制項的高度。如何避免這個問題呢?請在相應位置加入以下**(如有不清楚的地方請查閱msdn)。

public class mybutton : system.windows.forms.button

using system.windows.forms.design;

自定義控制項 自定義鐘錶

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

自定義控制項

首先是以下這幾項,attribute defaultproperty指定元件的預設屬性,toolboxdata指定當從ide工具中的 工具箱中拖動自定義控制項時為它生成的預設標記 defaultproperty text toolboxdata mycontrol runat server 上面這些...

自定義控制項

新聞管理 using system using system.collections.generic using system.linq using system.web using system.web.ui using system.web.ui.webcontrols namespace ne...