怎么不让winform设计器自动修改属性

.Net技术 码拜 8年前 (2016-03-09) 1450次浏览
为了省事和方便,准备在工程中写一个基础窗体,规定大小,背景,字体等等一系列属性,其他窗体继承这一个基础窗体就行了,方便统一管理,现在的方法是直接去子类的设计中某行的代码删掉(例如,背景图属性),然后就可以继承基础窗体的属性了,但是有时候打开设计器这些属性又被自动修I改了,怎么把这些固定下来,不被自动修改,但也不是不能修改
怎么不让winform设计器自动修改属性
解决方案

2

设置默认值, 以及能否序列化

1

你是不是在构造函数里面对属性进行处理了?
假如是的话神仙也没招!

15

引用 14 楼 x3230835 的回复:
Quote: 引用 12 楼 daixf_csdn 的回复:

LZ,本人尝试了一下你说的,有点不一样。
虽然如你所说,本人把基类的FormBorderStyle 改为:
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
然后发现派生类窗体打开时,仍然是FixedSingle,但是:
1、FixedSingle并没有在派生类的代码中被指定,也就是说派生类代码并没有本人产生代码
2、假如此时,你重新编译整个项目,你会发现派生类的FormBorderStyle也变成了None,UI也变化了。
但是,假如你修改了基类的窗体属性后,没有立即编译整个项目,就对派生类进行了修改,例如添加了控件,这种问题就
通过vs自动生成的代码被固化下来了,也就是你所描述的问题。
也就是说,vs的问题是,vs在派生类UI元素的属性展示上,有点小问题。但这可以通过一些技巧避免的。为什么会产生
这种问题,也肯定是可以解释的,有可能不是bug,只是功能不完善,虽然本人现在还没想到

还真是这样,辛苦了兄弟,感谢一起探讨,另外最后个问题,你的头像的番号多少?怎么不让winform设计器自动修改属性怎么不让winform设计器自动修改属性

什么是番号?

2

  class BaseForm : System.Windows.Forms.Form
{
protected BaseForm()
{
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
}
public bool ShouldSerializeFormBorderStyle()
{
return this.FormBorderStyle != System.Windows.Forms.FormBorderStyle.None;
}
}
这样,子类不是 None 时,才生成代码。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么不让winform设计器自动修改属性
喜欢 (0)
[1034331897@qq.com]
分享 (0)