タイトル | : Re^2: モードレス表示のフォームを常に操作可能に |
記事No | : 5013 |
投稿日 | : 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)から開くのでしょうか。
引き続き、ご教授よろしくお願いします。
|