フォームのコード:
public partial class Foo: Form
{
public Foo()
{
InitializeComponent();
}
protected override void OnLoad(EventArgs e)
{
// Form already visible here when Maximized from calling code
base.OnLoad(e);
}
}
呼び出しコード:
Foo foo = new Foo();
foo.WindowState = FormWindowState.Maximized;
foo.ShowDialog();
コードが OnLoad イベントに入ると、Foo フォームは既に画面に表示されています。ステートメントを削除するfoo.WindowState = FormWindowState.Maximized
と、OnLoad イベントで Foo フォームが表示されなくなります (そうあるべきです)。
その理由と、問題を解決するにはどうすればよいですか? 問題は、フォームが最大化に設定されている場合、サイクルの早い段階で表示されることです。
同様の質問がありますが、UI のアンティックに焦点を当てており、実際には問題に対処していないことに注意してください。