设计器是如何确定哪些属性会在Designer.cs中生成的?
2012-07-27 18:49
411 查看
之所以要解决这个问题, 是因为, 我的自定义组件代码是这样写的:
当我把自定义组件拖拽到一个Form里面时, 设计器自动会自动在Designer.cs中生成一行代码, 该代码为Radius属性赋值。
由于这里代码的执行顺序是:构造函数->设计器代码->Paint事件代码, 所以我在构造函数中获取的值被以上这行代码给覆盖了。
解决方案: 首先, 为私有变量赋值;其次,为Radius赋默认值, 即改为:
总结: 在编程的过程中,一定要记得为变量赋初值, 不要等到在构造函数或者其它地方去为其赋值。
private int _radius; public int Radius { get { return this._radius; } set { this._radius = value; } }Radius值我将在构造函数里面, 从资源文件中获取,同时, 我想_radius的值也就有了。
当我把自定义组件拖拽到一个Form里面时, 设计器自动会自动在Designer.cs中生成一行代码, 该代码为Radius属性赋值。
由于这里代码的执行顺序是:构造函数->设计器代码->Paint事件代码, 所以我在构造函数中获取的值被以上这行代码给覆盖了。
解决方案: 首先, 为私有变量赋值;其次,为Radius赋默认值, 即改为:
private int _radius = 1; [DefaultValue(8)] public int Radius { get { return this._radius; } set { this._radius = value; } }
总结: 在编程的过程中,一定要记得为变量赋初值, 不要等到在构造函数或者其它地方去为其赋值。
相关文章推荐
- ASP.NET(c#)——如何重新生成designer.cs文件
- VS 如何自动生成 aspx.designer.cs文件内容(解决"The base class includes the field ''"错误)
- 如何让设计器不生成自定义控件属性的代码
- 如何消除Web自定义控件的“自生成”复合属性的冗余类名称?
- JAVA中如何随机生成确定范围中的随机数
- Android如何生成公共属性的get,set方法时,去除 成员变量的m前缀
- LinqToSQL的dbml生成问题,编译生成时.designer.cs文件被删。
- 如何正确使用@synthesize(在有了自动合成属性实例变量之后,@synthesize还有哪些使用场景?)
- cs文件如何生成exe,dll文件
- 如何用Qt Designer快速设计产品的高保真原型
- 架构设计:生产者/消费者模式 第2页:如何确定数据单元
- HTML控件ID和NAME属性的区别,以及如何在asp.net页面的.CS文件中获得.ASPX页面中HTML控件的值
- 如何对Visibility属性进行动画(XMAL /CS)
- 如何让.Net控件在设计时InitializeComponent()中不生成相关代码
- 如何设计动态(不定)字段的产品数据库表?--淘宝多产品属性字段设计方法
- css选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先
- idea中如何给类中的属性生成set和get方法
- 对于数据库设计者而言,在设计表属性类型时应该考虑哪些问题?
- KiCad设计PCB-41-如何生成、查看和审核gerber文件
- GStreamer使用playbin,如何给动态生成的source组件设置属性?