如何在winform列表框项目上添加工具提示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在winform列表框项目上添加工具提示相关的知识,希望对你有一定的参考价值。

我正在使用win form的列表框控件。

我想在列表项上添加工具提示。我找不到任何默认的此类属性。

请分享一下,如何在winform列表框项目中添加工具提示?

谢谢

答案

如果要在列表框中执行此操作,则需要手动执行此操作。在表单中添加工具提示,并根据鼠标位置更新工具提示。更简单的方法可能是使用这样的DataGridView控件:

    DataGridView1.RowHeadersVisible = False
    DataGridView1.ColumnHeadersVisible = False
    DataGridView1.Columns(0).AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCellsExceptHeader
    Dim mydata As String() = {"Item 1", "Item 2", "Item 3", "Item 4", "Item 5", "Item 6"}
    For Each dataitem As String In mydata
        DataGridView1.Rows.Add(dataitem)
    Next
    For Each row As DataGridViewRow In DataGridView1.Rows
        row.Cells(0).ToolTipText = "ToolTip for " & row.Cells(0).Value
    Next row
另一答案

我想我会提到ShowItemToolTips上有一个ListView布尔属性,如果你想使用它而不是ListBox。将该属性设置为true,然后在ToolTipText项目上分配ListView值。

另一答案

遗憾的是,没有实现的方法在每个ListBox项上显示工具提示。

您可以创建自己的ListBox控件,允许您这样做,如下所示:http://www.codeproject.com/Articles/457444/Listbox-Control-with-Tooltip-for-Each-Item

另一答案

我能够通过以下方式彻底解决:

'tooltip
Dim toolTip As ToolTip = New ToolTip()
    Private Sub lstReports_MouseMove(sender As Object, e As MouseEventArgs) Handles lstReports.MouseMove
    Dim index As Integer = lstReports.IndexFromPoint(e.Location)
    If (index <> -1 AndAlso index < lstReports.Items.Count) Then
        If (toolTip.GetToolTip(lstReports) <> lstReports.Items(index).ToString()) Then
            toolTip.SetToolTip(lstReports, lstReports.Items(index).ToString())
        End If
    End If
End Sub

一个参考链接:

http://dotnetfollower.com/wordpress/2012/01/winforms-show-individual-tooltip-for-each-listbox-item/谢谢

以上是关于如何在winform列表框项目上添加工具提示的主要内容,如果未能解决你的问题,请参考以下文章

Winform实现按钮悬停显示提示框

C#winform,combobox添加可筛选功能

如何在 C#(Winform)中仅使用鼠标制作多选列表框?

如何获取列表框中的项目数

winform 输入搜索提示框的实现

MFC 中检查列表框控件中禁用复选框的工具提示