現在のWindowState
でグローバル変数(ある種の静的変数)を保持することができます。フォームのウィンドウ状態が変更されると、その変数が設定され、新しいフォーム(コンストラクタなど)を作成すると、その変数からウィンドウの状態が読み取られます。
イベントはありません。WindowStateChanged
イベントです。ただし、ウィンドウの状態を変更するとResize
イベントがトリガーされるため、そのイベントを使用できます。
あなたも、基本クラスでこのすべてを置くことができます:
public class FormBase : System.Windows.Forms.Form
{
private static FormWindowState _windowState = FormWindowState.Normal;
public FormBase()
{
WindowState = _windowState;
}
protected override void OnResize(EventArgs e)
{
_windowState = WindowState;
base.OnResize(e);
}
}
をそして、あなたは本当に空想に行きたい場合は、すべてのフォームのフォームの状態を同期させることができます。
public class FormBase : System.Windows.Forms.Form
{
private static List<FormBase> _allForms = new List<FormBase>();
private static FormWindowState _windowState = FormWindowState.Normal;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
_allForms.Add(this);
WindowState = _windowState;
}
protected override void Dispose(bool disposing)
{
_allForms.Remove(this);
base.Dispose(disposing);
}
protected override void OnResize(EventArgs e)
{
_windowState = WindowState;
foreach (var form in _allForms)
{
if (form != this)
{
form.WindowState = WindowState;
}
}
base.OnResize(e);
}
}