阻止其他winform覆盖父winform属性
本文关键字:winform 属性 覆盖 其他 | 更新日期: 2023-09-27 18:20:51
我有一个winforms 列表
mainWinform
winform1
winform2
winform3 ...
winform1
、winform2
和winform3
继承了mainWinform
设计
我设置了一些winform
,比如:
winform1
至:
maximizeBox = false
FormBorderStyle to Sizable
winform2
至:
maximizeBox = true
FormBorderStyle to fixed
既然我是从mainWinform
继承的,有没有一种方法可以将每个winform
设置为maximizeBox = true
、FormBorderStyle to Sizable
通过设置mainWinform
甚至winform1
已经将其设置为maximizeBox = false
FormBorderStyle to Sizable
?
为了防止继承的表单覆盖父设置,您可以尝试覆盖父表单类中的OnStyleChanged
protected override void OnStyleChanged(EventArgs e)
{
if (this.MaximizeBox!=true) this.MaximizeBox = true;
base.OnStyleChanged(e);
}
您必须在继承的form
s的构造函数中设置这些属性。例如:
public winform
{
//in this way you can inherit parent form properties and set them to child form
this.MaximizeBox = base.MaximizeBox;
this.FormBorderStyle = base.FormBorderStyle;
//or if you want to set it something else, then do like this
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Sizable;
}
您可以根据需要更改值。但您必须将代码放入构造函数中。