動くコード図鑑技術記事現場の渡り方キャリア論すべての記事About
C#

② Showで同じフォームを2回開いてNRE

出典: C# WinForms の Form.ShowDialog と Form.Show の違いと使い分け完全ガイドハマりポイント3つ—俺が踏んだやつ / ② Showで同じフォームを2回開いてNRE

② Showで同じフォームを2回開いてNRE (csharp)#92936fb74410
// ❌ NG:押すたびに新しいLogFormが開く
private void btnShowLog_Click(object sender, EventArgs e)
{
    var log = new LogForm();
    log.Show();
}
 
// ✅ OK:既に開いてたら前面に出すだけ
private LogForm _logForm;
 
private void btnShowLog_Click(object sender, EventArgs e)
{
    if (_logForm == null || _logForm.IsDisposed)
    {
        _logForm = new LogForm { Owner = this };
        _logForm.FormClosed += (_, __)=> _logForm = null;
        _logForm.Show();
    }
    else
    {
        _logForm.BringToFront();
    }
}
▸ この snippet は実行結果未収録
▸ 実行結果は未収録です
  • id: #92936fb74410
  • lines: 23
  • extracted: 2026-06-10

Source収録記事

この snippet は記事の「ハマりポイント3つ—俺が踏んだやつ / ② Showで同じフォームを2回開いてNRE」セクションに登場する。コードの前後の文脈・ハマりどころの解説は記事本文で。

同じ記事から

9
図鑑トップ