tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル Re^2: モードレス表示のフォームを常に操作可能に
投稿日: 2007/02/28(Wed) 09:56
投稿者おかっぴきA
こんにちは。回答ありがとうございます。

> 他人が再現できる「最小限に切り詰めた3つの.vb のコード(+Module1.vb)」をUPされてみては
> いかがでしょうか。
簡単にコードをUPしてみたいと思います。(ボタンはデフォルト名です)

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Public Class Form1
  〜中略〜
  Private Sub Button1_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles Button1.Click

    Dim frm1_1 As New Form1_1
    frm1_1.ShowDialog(Me)        'Form1から表示用フォーム(Form1_1)をモーダルで表示
    frm1_1.Dispose()
  End Sub
End Class

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Public Class Form1_1
  〜中略〜
  Private Sub Button1_Click(ByVal sender As System.Object, _
      ByVal e As System.EventArgs) Handles Button1.Click

    Form2.Instance.Show()        'モードレスフォームを複数表示しないようにする
  End Sub
End Class

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

Public Class Form2
  〜中略〜

  'ただ一つのフォームのインスタンスを保持するフィールド
  Private Shared _instance As Form2

  'ただ一つのフォームにアクセスするためのプロパティ
  Public Shared ReadOnly Property Instance() As Form2
    Get
      '_instanceがnullまたは破棄されているときは、
      '新しくインスタンスを作成する
      If _instance Is Nothing OrElse _instance.IsDisposed Then
        _instance = New Form2
      End If
      Return _instance
    End Get
  End Property            'これでForm2は一つだけしか表示されない
End Class

-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-

現在はこのようにコードを書いております。
※Form2については、前回教えていただいたものです。
  参照: http://hanatyan.sakura.ne.jp/bbs/wforum.cgi?mode=allread&no=4964&page=0


> Form1_Load()で、frm2 = New Form2 をしておいて、必要な時だけFrm2をshowする・・
それは、Form1_Load()で「Dim frm2 As New Form2」として、
表示用フォーム(Form1_1)から開くのでしょうか。

引き続き、ご教授よろしくお願いします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。