2012-09-21 4 views
3

특정 ID 값이있는 ListView가 있습니다. movemove 메서드를 사용하여이 ID에 대한 추가 세부 정보를 툴팁에 표시하고 있습니다.ListView 도구 설명 깜박임

코드는 VB2003로 작성되었으며 지금까지 완벽하게 작동했습니다. 최근 VB2008로 마이그레이션했습니다.

이제 도구 설명이 깜박입니다. 아래 세부 사항.

.NET 대구경의 쉬운 방법입니다. 저는 Java EE 개발자입니다. 그래서 내가 잘못한 것에 대한 단서가 거의 없습니다.

컴파일러 설정 : 대상 프레임 워크 .NET 2.0

코드 :

Dim m_HoveredItem As ListViewItem 

Private Sub cancellationList_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles CancellationList.MouseMove 
    Dim lvi As ListViewItem = Me.CancellationList.GetItemAt(e.X, e.Y) 

    If Not lvi Is m_HoveredItem Then 
     m_HoveredItem = lvi 
     If lvi Is Nothing Then 
      Me.cancelrejectToolTip.SetToolTip(Me.CancellationList, "") 
     Else 
      Dim orderText As String() = lvi.Text.Split("(") 
      Dim orderRef As Integer = CInt(orderText(0).Trim) 
      Dim orderIsin As String 
      Dim orderDesc As String 
      Dim order As AppOrder= New AppOrder(_server, orderRef) 
      orderIsin = order.Isin 
      orderDesc = order.OrderDescription 
      cancelrejectToolTip.SetToolTip(Me.CancellationList, (orderRef.ToString & "/" & orderIsin & "/" & orderDesc)) 
     End If 
    End If 
End Sub 

답변

1

마우스 움직임이 눈에 보이는 도구 설명 위로 이동 유지처럼 그것을 숨길 수있어 보이지만, 다음 마우스 이동이한다 다시 볼 수 있으며주기가 계속됩니다. 가장 쉬운 방법은 Show 메서드를 사용하여 툴팁의 위치를 ​​오프셋하는 것입니다.

Private Sub cancellationList_MouseMove(ByVal sender As Object, _ 
             ByVal e As MouseEventArgs) _ 
             Handles CancellationList.MouseMove 
    Dim lvi As ListViewItem = Me.CancellationList.GetItemAt(e.X, e.Y) 

    If Not lvi Is m_HoveredItem Then 
    m_HoveredItem = lvi 
    If lvi Is Nothing Then 
     Me.cancelrejectToolTip.Hide(Me.CancelleationList) 
    Else 
     Dim orderText As String() = lvi.Text.Split("(") 
     Dim orderRef As Integer = CInt(orderText(0).Trim) 
     Dim orderIsin As String 
     Dim orderDesc As String 
     Dim order As AppOrder= New AppOrder(_server, orderRef) 
     orderIsin = order.Isin 
     orderDesc = order.OrderDescription 

     cancelrejectToolTip.Show(orderRef.ToString & "/" & orderIsin & "/" & orderDesc, _ 
           Me.Cancellationlist, _ 
           New Point(e.X + 16, e.Y + 16)) 
    End If 
    End If 
End Sub 
+0

wroughters. 감사. 실제로 스레드에서이 제안을 건너 왔지만 표시를 사용하지 않고 대신 위치를 설정하는 설정 방법을 찾고있었습니다. 고마워. –

+0

@siddheshjog 'Hide (...)'메서드를 사용하기 위해이 메서드를 변경했다는 것을 잊어 버렸습니다. – LarsTech