C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[3]: 特定のコントロール上にマウスがある時


(過去ログ 98 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■58691 / inTopicNo.1)  特定のコントロール上にマウスがある時
  
□投稿者/ hs (232回)-(2011/04/22(Fri) 15:33:37)

分類:[VB.NET/VB2005 以降] 

VB2008

いつもお世話になっております。

フォーム上に、Panel1を配置し、そのPanel1の中にPictueBox1を配置しております。

Panel上にマウスがある時に、PictueBox1のVisibleをTrueに、Panel上にマウスがない時は、VisibleをFalseに制御しております。
さらにPictueBox1にマウスがある場合も、PictueBox1は表示していたいのです。

現時点でのソースです。

Private Sub Panel1_MouseEnter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Panel1.MouseEnter
   PictueBox1.Visible = True
End Sub

Private Sub Panel1_MouseLeave(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Panel1.MouseLeave
   PictueBox1.Visible = False
End Sub

しかし、これだと、PictueBox1にマウスが移動した際、Panel1_MouseLeaveが起こり、さらにPanel1_MouseEnterとループ状態になってしまいます。

PictueBox1にはClickイベントを用意しようと思っており、頭を悩ませております。
こんな時、どのすれば良いのでしょうか?
よろしくお願いします。

引用返信 編集キー/
■58692 / inTopicNo.2)  Re[1]: 特定のコントロール上にマウスがある時
□投稿者/ じゃんぬねっと (71回)-(2011/04/22(Fri) 15:45:40)
じゃんぬねっと さんの Web サイト
No58691 (hs さん) に返信
> こんな時、どのすれば良いのでしょうか?

PictueBox1 も判定条件に加えるだけだと思いますが、浅はかでしょうか?
引用返信 編集キー/
■58693 / inTopicNo.3)  Re[2]: 特定のコントロール上にマウスがある時
□投稿者/ shu (644回)-(2011/04/22(Fri) 15:50:26)
こんなんでどう?PictureBox1.MouseEnterは多分いらないと思う。

    Private Sub Panel1_MouseEnter(sender As Object, e As System.EventArgs) Handles Panel1.MouseEnter ', PictureBox1.MouseEnter
        PictureBox1.Visible = True
    End Sub

    Private Sub Panel1_MouseLeave(sender As Object, e As System.EventArgs) Handles Panel1.MouseLeave
        Dim pos = Panel1.PointToClient(Control.MousePosition)

        If Not PictureBox1.Bounds.Contains(pos) Then
            PictureBox1.Visible = False
        End If

    End Sub

引用返信 編集キー/
■58694 / inTopicNo.4)  Re[3]: 特定のコントロール上にマウスがある時
□投稿者/ hs (233回)-(2011/04/22(Fri) 16:07:12)
No58692 (じゃんぬねっと さん) に返信
No58693 (shu さん) に返信

いつもありがとうございます。

shu さんのソースで、思う動作が実現できました。
ありがとうございました。

また何かあった時はよろしくお願いします。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -