0

mousemove イベントを処理したい ListBox があります。そのため、次のコードを使用しています

Private Sub AreaLB_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles AreaLB.MouseMove
        Dim ListMousePosition As Point = AreaLB.PointToClient(Me.MousePosition)
        Dim itemIndex As Integer = AreaLB.IndexFromPoint(ListMousePosition)
        Dim AreaToolTip As ToolTip = ToolTip1
        Dim myLB As ListBox = AreaLB
        AreaToolTip.Active = True
        Dim g As Graphics = AreaLB.CreateGraphics()
        If itemIndex > -1 Then
            Dim s As String = myLB.Items(itemIndex)
            If g.MeasureString(s, myLB.Font).Width > myLB.ClientRectangle.Width Then
                AreaToolTip.SetToolTip(myLB, s)
            Else
                AreaToolTip.SetToolTip(myLB, "")
            End If
            g.Dispose()
        End If
    End Sub

私の問題は...マウスを動かしていないときは、
g.MeasureString(s, myLB.Font).Width > myLB.ClientRectangle.Width
なぜそれが起こるのか、どうすれば回避できるのかというときに、この手順が常に実行されます。

4

1 に答える 1