|
分類:[.NET 全般]
Private Sub ComboBox1_MouseEnter(sender As Object, e As EventArgs) Handles ComboBox1.MouseEnter
コンボボックスにカーソルが入った処理
End Sub
Private Sub ComboBox1_MouseLeave(sender As Object, e As EventArgs) Handles ComboBox1.MouseLeave
コンボボックスからカーソルが出た処理
End Sub
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
MessageBox.Show("test",
"", MessageBoxButtons.OK, MessageBoxIcon.Information)
End Sub
コンボボックスをクリックしなければ、
このコードで正常に動作するのですが、
コンボボックスをクリックして、メッセージボックスが表示されるようにすると、
コンボボックスの外にカーソルが出たにも拘わらず、
Leave処理が行われません。
そのため、以下のように改良してみました。
Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
MessageBox.Show("test",
"", MessageBoxButtons.OK, MessageBoxIcon.Information)
Call ComboBox9_MouseLeave(sender, e)
End Sub
これで、Leave処理は行われるようにはなったのですが、
再度、カーソルをコンボボックス内に入れても、
ComboBox1_MouseEnterが実行されません。
一度、コンボボックスの外に出してから、再度入れないと、ComboBox1_MouseEnterが実行されません、
つまり、MessageBoxを使ってカーソルがコンボボックスの外側に出た場合
ComboBox1_MouseLeaveを実行したとしても、
プログラムの裏側では、まだ、カーソルがボックスの内側にあると認識されているために、
ComboBox1_MouseEnterが実行されないようです。
これはどのようにすれば良いでしょうか?
|