• ベストアンサー

クリックするたびに、フォームが複数表示される

下記のコードだと Private Sub Button1_Click(・・・ Dim f2 As New Form2() f2.Show() End Sub ボタンをクリックするたびに、同じフォームが表示されます。 同じフォームが開かないようにしたいのですが、どうすればいいのでしょうか? バージョンは、Visual Basic .NETです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MARU4812
  • ベストアンサー率43% (196/452)
回答No.2

Private m_f2 As Form2 Private Sub Button1_Click(・・・   If m_f2 Is Nothing OrElse m_f2.IsDisposed Then     m_f2 = New Form2   End If   m_f2.Show() End Sub

a-z_A-Z
質問者

お礼

ありがとうございます。 希望通りのことができました。 実は、ネットで探して、この問題の対応策のページを見つけたのですが、私のvbのバージョンが古くて、myが対応していないため解決できませんでした。 これだと、私のバージョンでも問題が解決できたため助かりました。 ありがとうございました。

その他の回答 (1)

  • yhc3594
  • ベストアンサー率27% (25/92)
回答No.1

Dim f2 As New Form2()・・・この行で常にフォームが生成(新設)されます。 その後 f2.Show()・・・この行で新設されたフォームが表示されます。 *同一フォームが追加されて行く事になります。 Dim f2 As New Form2()の行を削除し、同一フォームが生成されない様にします。 f2.Show()をForm2.Show()として、フォームを表示します。 以上、お試し下さい。

a-z_A-Z
質問者

お礼

ありがとうございます。 つまり、 Private Sub Button1_Click(・・・ Form2.Show() End Sub ってことでしょうか? これだと、ビルドするとエラーがでました。