Мне нужно сделать так, чтобы базовый класс применял это:
public class DialogForm : Form
{
public DialogForm()
{
base.HelpButton = true;//enforce this
base.MinimizeBox = false;//enforce this
base.MaximizeBox = false;//enforce this
}
}
И убедитесь, что он не был изменен впоследствии, как это можно сделать?
Я не могу переопределить свойства MinimizeBox
и MaximizeBox
, поскольку они не являются виртуальными, если кто-то произнесет DialogForm
, поскольку Form
пропустит следующий код:
new public bool MinimizeBox
{
get { return false; }
set { base.MinimizeBox = false; }
}
new public bool MaximizeBox
{
get { return false; }
set { base.MaximizeBox = false; }
}
Спасибо
Для справки вот как это решить (спасибо SLacks)
private bool m_inOnStyleChanged = false;
protected override void OnStyleChanged(EventArgs e)
{
if (!m_inOnStyleChanged)
{
m_inOnStyleChanged = true;
base.OnStyleChanged(e);
base.HelpButton = true;
base.MinimizeBox = false;
base.MaximizeBox = false;
m_inOnStyleChanged = false;
}
}