ここから本文です

VB.netで、どうしてWM_MOUSEMOVE メッセージはリストボックス上にマウスがある時に...

hys********さん

2017/12/815:15:23

VB.netで、どうしてWM_MOUSEMOVE メッセージはリストボックス上にマウスがある時に発生しないのか、また、どうしたらリストボックス上でも発生するのか教えて欲しい

閲覧数:
76
回答数:
2
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

por********さん

2017/12/817:33:33

こんにちは。
windowsは、コントロールを配置したとき、「どっちが手前」なのかで、イベントの種類とコードが違っていきます。

境界線の部分で、微妙な動作になっているなら、処理のタイムラグを考慮してください。

イベントは、キューイングされて、順番に処理するようになっています。

動作が1つでも、イベントは複数だったら、その処理順番も考えるということと、「処理するイベントプロシジャ」を整理して、混乱しにくいコードにする、などてず

  • 質問者

    hys********さん

    2017/12/818:13:03

    リストボックスの枠上ではタイムラグに関係なく、常に全く反応してない
    WM_MOUSEMOVE メッセージについて検索してもVB.netにおけるコントロール上でのメッセージを受け取る方法がなくて全くどうしていいかわからない。

  • その他の返信(5件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

質問した人からのコメント

2017/12/12 21:33:12

listboxのコントロールenable=falseにしたら境界線上でもMe.Mousemoveでマウス位置を取得することができた

ベストアンサー以外の回答

1〜1件/1件中

プロフィール画像

カテゴリマスター

hot********さん

2017/12/819:33:10

リストボックス上では、リストボックスに対してMouseMoveが発生しているからです。

フォームにListBox1がある場合です。

Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
KeyPreview = True
End Sub
Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
Me.Text = e.X & " " & e.Y
End Sub
Private Sub ListBox1_MouseMove(sender As Object, e As MouseEventArgs) Handles ListBox1.MouseMove
Me.Text = e.X & " " & e.Y
End Sub
End Class





全てのコントロールのMouseMoveをフォームのMouseMoveにも教える場合です。(ボタンやラベルも対象です)


Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
For Each ctrl As Control In Me.Controls '全てのコントロールの
AddHandler ctrl.MouseMove, AddressOf Form1_MouseMove 'MouseMoveをフォームにも教える
Next
End Sub

Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles Me.MouseMove
Me.Text = e.X & " " & e.Y
End Sub
End Class

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる