首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ListView ToolTip闪烁

ListView ToolTip闪烁
EN

Stack Overflow用户
提问于 2012-09-21 20:16:03
回答 1查看 1.4K关注 0票数 3

我有一个具有特定id值的ListView。我使用movemove方法在工具提示中显示有关此id的其他详细信息。

代码是用VB2003编写的,到目前为止,它工作得很好。最近我们迁移到了VB2008。

现在,工具提示闪烁。详情见下文。

希望这对.NET的大个子们来说是一个简单的问题。我是一名Java开发人员,所以我几乎(没有)知道我做错了什么。

编译器设置:目标框架.NET 2.0

代码:

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-21 20:31:43

看起来鼠标移动一直在可见的工具提示上移动,使其隐藏,但随后鼠标移动使其再次可见,循环继续。最简单的方法是使用Show方法仅偏移工具提示的位置:

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12530444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档