【问题标题】:C# label tooltip is showing up several timesC# 标签工具提示多次出现
【发布时间】:2013-06-26 06:43:37
【问题描述】:

我想我有一个不寻常的问题,很多关于工具提示的问题是:为什么它不显示,或者为什么不显示多次。 但是我的问题是,当我将鼠标悬停在我的工具提示标签上时,如果我将鼠标缓慢移动到它为每个像素显示的标签上,工具提示会显示几次。 我试过类似的东西:ToolTip1.ReshowDelay = 500; 但这似乎没有任何效果。 我也尝试使用label1_MouseEnterlabel1_MouseLeave,但也无法正常工作。

希望有人能帮帮我

这是所有必须发生的代码::)

    private void label1_Hover(object sender, EventArgs e)
    {
        //Enter Help box texboxes
        System.Windows.Forms.ToolTip ToolTip1 = new System.Windows.Forms.ToolTip();
        ToolTip1.ShowAlways = true;
        ToolTip1.Show("Enter the Drive letter in the first textbox" + "\n" + "Enter the submap in the second textbox", label1);
    }

【问题讨论】:

  • 为什么需要在悬停时这样做?它正在做它应该做的事情
  • 如果使用asp:Label,只需设置标签控件的Tooltip属性即可
  • 不,当我将鼠标放在标签上时,工具提示会显示 2 或 3 次,或者当我在标签上缓慢移动时,它会向工具提示框发送垃圾邮件。所以它必须一次只显示 1 个
  • 每次触发hover事件时都会生成tooltip,你应该把创建移出block直接设置(是winform吗?)
  • 将创建移出块并设置它是什么意思?你能举个小例子吗?我还是很新;)是的,我正在使用 Winform

标签: c# visual-studio-2010 hover label tooltip


【解决方案1】:

通过使用悬停事件处理程序创建工具提示,每次用户将鼠标悬停在标签上时,都会创建一个新的ToolTip 对象并将其与标签相关联。您会注意到第一次将鼠标悬停在它上面时会看到一个工具提示,但随后的悬停会创建其他工具提示。

无需在标签的悬停事件中创建工具提示,您只需在创建表单时创建一次即可。 SetToolTip() 方法将导致工具提示与提供的控件相关联,并将表现为正常的工具提示(仅在用户将鼠标悬停在控件上时显示)。

例如,您可以在表单的构造函数中调用SetToolTip()

    public Form1()
    {
        InitializeComponent();

        new ToolTip().SetToolTip(label1, "Enter the Drive letter in the first textbox" + "\n" + "Enter the submap in the second textbox");
    }

或者,您可以在表单的加载事件处理程序中创建工具提示。

【讨论】:

  • 哦,明白了,太棒了,在我用这样的形式设置它之后:ToolTip1.Show("", label1);在 labe1_hover 中,它起作用了,谢谢!
  • 您可以完全删除 label1_hover 事件处理程序。当用户将鼠标悬停在您在方法调用中命名的控件上时,SetToolTip() 将自动显示工具提示。
猜你喜欢
  • 2014-08-22
  • 2012-08-22
  • 1970-01-01
  • 2019-03-02
  • 2011-01-13
  • 1970-01-01
  • 2011-04-09
  • 1970-01-01
  • 2011-09-30
相关资源
最近更新 更多