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

タイトル Re^3: 複数フォームの上下を保つ方法
投稿日: 2011/03/07(Mon) 18:03
投稿者花ちゃん
ようは、Form2 の方で、Form1 がアクティブになった事を取得したら、Form2 を
Form1 より上になるようにしてやればいいだけで、ただ、どのようにして、それを
取得するかという事が問題で、簡単な方法ならタイマーコントロールを使用するのが
一番かと。(.NET 以降ならもっとうまい手があるかも知れませんが?)

タイマーコントロールを使うなら Form2 で
Private Sub Timer1_Tick(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) Handles Timer1.Tick
    Dim AWhwnd As IntPtr
    Dim lpString As String = Strings.StrDup(255, " "c)
    Dim lngResult As Integer
    Dim Title As String
    AWhwnd = GetForegroundWindow()    'ハンドルを取得
    'アクティブウインドウのタイトルを取得
    lngResult = GetWindowText(AWhwnd, lpString, 255)
    Title = Microsoft.VisualBasic.Left(lpString, InStr(lpString, vbNullChar) - 1)
    If Title = "Form1" Or Title = Me.Text Then
        lngResult = SetWindowPos(Me.Handle, HWND_TOP _
                          , 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
    'Else
    '    lngResult = SetWindowPos(Me.Handle, HWND_TOP _
    '                      , 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE)
    End If

End Sub

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

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