C# フォームアプリケーションでフォームの二重起動を防ぐ方法を紹介する。
注意
今回は「SampleForm」というフォームがある前提で進める。
やり方
開く元のフォームに以下のコードを追加する。
Form.cs
public SampleForm sf = null;
「sf」の部分は自由に変更してもよい。
そして、いままでのフォームを開くコードのところを二重起動を防止するコードに書き換える。
Form.cs
/* 二重起動防止 */
if (this.sf == null || this.sf.IsDisposed)
{ /* ヌル、または破棄されていたら */
this.sf = new SampleForm();
}
おまけ
フォームにフォーカスを当てる。
Form.cs
if (!this.sf.Visible)
{
this.sf.Show();
}
else
{
this.sf.Activate();
}