概要
フォームが一つしか開かないようにします。(.Show)
動作確認環境
Windows11
.NET Framework 4.7.2
詳細
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
// fom2でfm2を呼び出しているのでpublicを使用している。 // その必要がなければprivate static とすべき? public Form2 fm2 = null; private void フォームが開くボタン等のイベント_Click(object sender, EventArgs e) { try { // fm2が存在しない、または破棄されているかを確認。 if (fm2 == null || fm2.IsDisposed) { fm2 = new Form2(); // form2でfom1のリソースを「((Form1)this.Owner).」にて使用するために"this"を引き渡しています。 fm2.Show(this); } else { // fm2が縮小化されている場合には、通常時の大きさに戻します。 if (fm2.WindowState == FormWindowState.Minimized) { fm2.WindowState = FormWindowState.Normal; }; fm2.Activate(); } } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { } } |
参考
もっと適切なソースを書くには、以下を参照したほうがよい?
[] フォームが一つしか表示されないようにする – .NET Tips (VB.NET,C#…)
フォームが一つしか表示されないようにする
コメント