当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 如何禁止调整自定义控件的尺寸?

ASP.NET
二级域名Cookie问题的解决方法
如何为asp.net网站项目添加子项目
asp.net用url重写URLReWriter实现任意二级域名
asp.net 序列化and反序列化演示
asp.net Timer的使用方法
AjaxControlToolKit DropDownExtender(下拉扩展控件)使用方法
AjaxControlToolKit CalendarExtender(日历扩展控件)的使用方法
让GridView只显示特定用户的数据的方法
让GridView只更新某些特定的数据的方法
ajaxControlToolkit中CascadingDropDown的用法说明
axp.net ScriptManager的简单用法
把程序集安装到全局程序集缓存中的步骤
引用全局程序集缓存内的程序集的方法
asp.net COOKIES需要注意的一点
asp.net UrlReWriter使用经验小结
页面导出为Excel的时间格式的问题
asp.net cookie清除的代码
Asp.net XMLHTTP封装类(GET,Post发送和接收数据)
ASP.NET XmlHttp跨域访问实现代码
Asp.NET 随机码生成基类(随机字母,随机数字,随机字母+数字)

ASP.NET 中的 如何禁止调整自定义控件的尺寸?


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 182 ::
收藏到网摘: n/a

有时我们在自定义控件时,出于某种原因的考虑(比如:防止在设计时误操作),想禁止调整自定义控件的尺寸(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、建立自定义控件设计器类。/// /// 自定义控件设计器类/// public class MyButtonDesigner : System.Windows.Forms.Design.ControlDesigner{ public MyButtonDesigner() { } public override SelectionRules SelectionRules { get {//不允许调整控件的高度,具体说明详见MSDN。 SelectionRules rules = SelectionRules.Visible | SelectionRules.Moveable | SelectionRules.LeftSizeable | SelectionRules.RightSizeable; return rules; } }} 2、给自定义控件类添加属性,将该控件类与上面定义的设计器类关联起来。[Designer(typeof(MyButtonDesigner))]public class MyButton : System.Windows.Forms.Button{... ...} 经过以上处理,就实现了上述效果。不过如果再仔细研究一下,你会发现这只在设计时有效,而在运行时,还是能够改变该控件的高度。如何避免这个问题呢?请在相应位置加入以下代码(如有不清楚的地方请查阅MSDN)。public class MyButton : System.Windows.Forms.Button{... ... protected override void SetBoundsCore(int x, int y, int width, int height, BoundsSpecified specified) { base.SetBoundsCore(x, y, width, 23, specified); }} 最后提醒大家一下:要成功完成编译,必须添加System.Design引用,并在文件头部加上:using System.Windows.Forms.Design;