今晩は、質問させていただきます。どうぞよろしくお願いいたします。
Form1(メインフォーム)の下にForm2を、
Form2の下にForm3を表示し、これらの順番が変わらないように致したく、
次のようにコーディングいたしました。
【Form1のコード】
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim form2o As New Form2
Dim form3o As New Form3
Me.Owner = form2o
form2o.Show()
End Sub
【Form2のコード】
Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim form3o As New Form3
Me.Owner = form3o
form3o.Show()
End Sub
この状態のまま、タスクバー上のアプリケーション名をクリックした際の
最小化⇔普通化を(3フォームとも一緒に)させたいのですがうまくいきません。。
Form1に、下の【コード1】のようにコーディングいたしましたら、
タスクバーのForm1クリック(最小化) →3つとも最小化(成功)いたしますが、
Form1とForm2がタスクバー上から消えてしまい、Form1クリックによる最大化ができなくなります。
またForm3に、下の【コード2】のようにコーディングいたしましたら、
タスクバーのForm3をクリックしてもForm1が一回ちらつくだけで、最小化すらできません。。
まったく違うイベントを取る方法や、Owner指定方法自体を行わない方法でも結構でございますので、
何かこの動作をうまくできる方法はないでございましょうか?
ずっと悩んでおりますが、解決致しません。もしお詳しい方がいらっしゃいましたら,
是非ともアドバイスいただきたく、どうぞよろしくお願いいたします。
【コード1】
Public Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
Dim form2o As New Form2
If Me.WindowState = FormWindowState.Minimized Then
Owner.WindowState = FormWindowState.Minimized
Owner.Owner.WindowState = FormWindowState.Minimized
ElseIf Me.WindowState = FormWindowState.Normal Then
Owner.WindowState = FormWindowState.Normal
Owner.Owner.WindowState = FormWindowState.Normal
End If
End Sub
【コード2】
Public Sub Form3_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
Form1.WindowState = FormWindowState.Minimized
Form2.WindowState = FormWindowState.Minimized
ElseIf Me.WindowState = FormWindowState.Normal Then
Form2.WindowState = FormWindowState.Normal
Form1.WindowState = FormWindowState.Normal
End If
End Sub
何卒お願いいたします。
お礼
どうもありがとうございますm(_ _)m Form1,2,3が半透明で、重なった状態を保つ必要がございます^^; もしまた何か良さそうな方法など思いつかれましたら是非とも アドバイスお願いいたします。 この度はどうもありがとうございました。