dポイントプレゼントキャンペーン実施中!

VB2008です。

MDIフォーム中にForm1とForm2があります。
Form1がアクティブです。
Form2をクリックしてもアクティブになりません。ただしタイトルバーをクリックするとアクティブになります。

これは言語の仕様でしょうか。市販のアプリケーションでは、タイトルバー以外の場所をクリックしてもアクティブになるものがほとんどですが、VB2008ではどのようにすれば実現できるのでしょうか。

A 回答 (2件)

どのようなコードをお書きなのでしょう



# 当方の環境はVB2005ですが以下の手順ではどこをクリックしても
# 切り替え可能です

単純にIsMdiContainer=True にした MainForm
プロジェクトに追加した Form1,Form2
があると仮定して

MainFormのクラス変数として
dim fm1 as Form1, fm2 as Form2
を定義
Loadイベントで
fm1 = New Form1()
fm2 = New Form2()
fm1.MdiParent = Me
fm2.MdiParent = Me
fm1.Show()
fm2.Show()

を記述しただけのプロジェクトですと Form1,Form2どこをクリックしてもアクティブフォームは切り替わりますよ

他人が検証できる 最低の手順の公開か、必要最小限のコードを提示してみましょう

この回答への補足

お返事ありがとうございます。
わかりにくい質問でごめんなさい。

今は、3つのフォームに以下のコードがあります。

MDIフォーム:
Private Sub MDIParent1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Form1.Show()
Form2.Show()
End Sub

フォーム1:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MdiParent = MDIParent1
End Sub


フォーム2:
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.MdiParent = MDIParent1
End Sub

ご回答いただいた方法ではできました。
インスタンスを作成しない場合は、やはり無理なのでしょうか。

補足日時:2008/07/01 12:02
    • good
    • 0

インスタンスを作成してお使いになることをお勧めします



MDIParentのLoadイベントで
Form1.MdiParent = Me
Form2.MdiParent = Me
Form1.Show()
Form2.Show()
といった具合にしてやれば切り替えは可能になります … お勧めはしませんが
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!