none
ダイアログを閉じる時に親フォームをアクティブにしたくない RRS feed

  • 質問

  • はじめまして。

    皆様のお力をお借り致します。

    VB.net 2008 Express Editionで作成しております。

     

    親フォームからダイアログを表示させ、そのダイアログから新規フォームを表示させ、

    ダイアログは閉じ、新規フォームがアクティブとなるようにしたいと思っています。

    ------------------親フォーム(Form2)------------------

     

            Form3.ShowDialog(Me)

            Form4.Activate()


     

     

    ------------------ダイアログ(Form3)------------------

            Dim Form4 As New Form4

            Form4.Show()

            Me.Close()

     

    新規フォームは複数の表示が可能としています。

    現在の動きはダイアログを表示後、新規フォームを表示する際に

    親フォームがアクティブとなっています。

    Form4.Activate()のところはDim Form4 As New Form4で作成したインスタンスを呼び出すべきか

    それとももっと簡単な方法があるのか、いずれにしろ方法がわからないでいます。

    宜しくお願い致します。

     

    2010年11月26日 11:01

回答

  • 一つの例ですが、以下のようにして実現できます。

    親フォーム(Form2)で

    Using f = New Form3
       f.ShowDialog(Me)
       f.ShowedForm.Activate()
    End Using
    

    ダイアログ(Form3)のコード

    Private _ShowedForm As Form
    Public Property ShowedForm() As Form
       Get
         Return _ShowedForm
       End Get
       Set(ByVal value As Form)
         _ShowedForm = value
       End Set
    End Property
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim f = New Form4()
       f.Show()
       ShowedForm = f
       Me.Close()
    End Sub
    

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2010年11月26日 14:55
    モデレータ

すべての返信

  • 一つの例ですが、以下のようにして実現できます。

    親フォーム(Form2)で

    Using f = New Form3
       f.ShowDialog(Me)
       f.ShowedForm.Activate()
    End Using
    

    ダイアログ(Form3)のコード

    Private _ShowedForm As Form
    Public Property ShowedForm() As Form
       Get
         Return _ShowedForm
       End Get
       Set(ByVal value As Form)
         _ShowedForm = value
       End Set
    End Property
    
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim f = New Form4()
       f.Show()
       ShowedForm = f
       Me.Close()
    End Sub
    

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    2010年11月26日 14:55
    モデレータ
  • ご回答ありがとうございます。

    なるほど、プロパティ変数を使用するのですね。

    参考になりました。^^;

    今日明日は少し触れそうもないので、後日に報告したいと思います。

    2010年11月26日 16:37
  • 当たり前と言えば当たり前ですが、目的の動きとなりました。

    ありがとうございました!

    2010年11月29日 0:23