阻止其他winform覆盖父winform属性

本文关键字:winform 属性 覆盖 其他 | 更新日期: 2023-09-27 18:20:51

我有一个winforms 列表

mainWinform
winform1
winform2
winform3 ...

winform1winform2winform3继承了mainWinform设计

我设置了一些winform,比如:

winform1至:

maximizeBox = false
FormBorderStyle to Sizable 

winform2至:

maximizeBox = true
FormBorderStyle to fixed

既然我是从mainWinform继承的,有没有一种方法可以将每个winform设置为maximizeBox = trueFormBorderStyle to Sizable通过设置mainWinform甚至winform1已经将其设置为maximizeBox = false FormBorderStyle to Sizable

阻止其他winform覆盖父winform属性

为了防止继承的表单覆盖父设置,您可以尝试覆盖父表单类中的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;
}

您可以根据需要更改值。但您必须将代码放入构造函数中。