有时我们在自定义控件时,出于某种原因的考虑(比如:防止在设计时误操作),想禁止调整自定义控件的尺寸(Height 或 Width)。最初我是这样实现的,这也是较简单的方法:
public class MyButton : System.Windows.Forms.Button
{
... ...
protected override void OnResize(EventArgs e)
{
this.Height = 23;
this.Width = 75;
}
}
但是我对这样的效果不太满意,要是能实现像TextBox那样,在设计时上下边缘的小方块是灰的,而左右边缘的小方块是白的(表示无法调整其Height),那该有多酷!经过一番研究和到CSDN上求助,终于解决了此问题,效果如下图所示:
现在将代码整理出来,希望能对大家有所帮助。
1、建立自定义控件设计器类。
/// <summary>
/// 自定义控件设计器类
/// </summary>
public class MyButtonDesigner : System.Windows.Forms.Design.ControlDesigner
{
public MyButtonDesigner()
{
}
public override SelectionRules SelectionRules<