c# - 为什么我的工具提示不显示它的提示?

标签 c# winforms tooltip linklabel

我有一个 ShowAlways 属性设置为 true 的工具提示。

在我希望显示工具提示的控件上(在本例中为 LinkLabels),我看到有一个“ToolTip on <name of my Tooltip >”属性,它需要一个字符串。

但是,我的工具提示在 5 个 LinkLabel 之间共享,并且应该根据悬停在哪个链接标签上而有所不同。

我确实有一个有效的共享点击事件:

private void linkLabelPlatypus1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
{
    int Platypus = 1;
    LinkLabel ll = null;
    if (sender is LinkLabel)
    {
        ll = sender as LinkLabel;
    }
    if (null != ll)
    {
        if (ll.Name == linkLabelPlatypus2.Name)
        {
            Platypus = 2;
        } else if (ll.Name == linkLabelPlatypus3.Name)
        {
            Platypus = 3;
        } else if (ll.Name == linkLabelPlatypus4.Name)
        {
            Platypus = 4;
        } else if (ll.Name == linkLabelPlatypus5.Name)
        {
            Platypus = 5;
        }
        toolTipPlatypi.SetToolTip(ll, DuckbillData.GetPlatypusDataForToolTip(Platypus)); 
    }
}

...但我希望工具提示也能在悬停时显示,而不需要用户单击标签。

最佳答案

你只需要设置一次工具提示:

public Form1()
{
    InitializeComponent();

    toolTip1.SetToolTip(linkLabel1, "foo");
    toolTip1.SetToolTip(linkLabel2, "bar");
}

完成。

MouseHoverMouseEnter 处理程序中执行此操作将在每次事件触发时反复调用此函数。它会起作用,但不必要地复杂。

您只需要一个表单上的工具提示即可为任意数量的组件提供提示,并且它可以同时和连续地提供所有提示(即:您不必每次都更改或设置它)。每个组件只能有一个提示,但您可以在整个程序中随时更改它。 ShowAlways 不必为真 - 它用于使工具提示显示在不活动的表单上(即:将鼠标悬停在具有焦点的窗口后面的非事件窗口上,等等)。

关于c# - 为什么我的工具提示不显示它的提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12644050/

相关文章:

c# - 如何更改 Windows 用户的区域设置/日期格式?

c# - 在数据库中插入数据集记录

c# - ComboBox 不更新所选项目的 DataBindings 已更改 (WinForms)

c# - 如何用Mono/C#程序调用linux/c++函数?

c# - 使用 Azure IOT 库创建 Xamarin.Forms .Net Standard 应用程序?

c# - 如何只允许将一个文件放入列表框控件c#

.net - 如何解决VB.NET 1.1应用程序的性能下降问题?

javascript - 自定义工具提示的基本思想,使用纯 Javascript

javascript - 如何在函数内部为 jquery 工具提示调用不同的 var 字符串

javascript - nvd3 piechart.js - 如何编辑工具提示?