【问题标题】:Bug in ToolTip behaviour for disabled controls?禁用控件的工具提示行为中的错误?
【发布时间】:2014-02-03 14:24:20
【问题描述】:

我注意到 Windowsforms 中的工具提示有一个非常奇怪的行为,我不确定这是否是框架 (.NET 4) 的(已知)错误: 我有两个紧挨着的按钮。两者都分配了工具提示。现在我禁用其中一个控件。自然,对于禁用的控件,工具提示不会显示。这是它变得奇怪的时候:当我将光标移到启用按钮上而不等待工具提示出现在启用的控件上时,它会在禁用的控件上打开 - 并立即再次消失。

防止这种情况的唯一方法是在工具提示的弹出事件处理程序中使用一个相当讨厌的解决方法。我检查关联的控件是否被禁用,如果是,则取消该操作。 首先有没有其他方法可以防止这种情况发生?

//edit:刚刚确认了.NET 4.5.1中仍然存在这个bug

【问题讨论】:

    标签: c# winforms tooltip


    【解决方案1】:

    是的,这似乎是框架中的一个错误。

    【讨论】:

      【解决方案2】:

      你可以试试下面的方法

      ToolTip tt = new ToolTip();
      button2.Enabled = false;
      
      if (!button2.Enabled)
      {
          tt.SetToolTip(this.button2, "");
      }
      else
      {
          tt.SetToolTip(this.button2, "Button2");
      }
      tt.SetToolTip(this.button1, "Button1");
      

      更新:

      ToolTip tt = new ToolTip();
      tt.ShowAlways = false;
      button2.Enabled = false;
      
      if (button2.Enabled)
      {
          tt.SetToolTip(this.button2, "Button2");
      }
      else
      {
          tt.ShowAlways = false; 
      }
      
      tt.SetToolTip(this.button1, "Button1");
      

      【讨论】:

      • 如果我错了,请纠正我,但tt.SetToolTip(this.button2, ""); 不会显示空白工具提示(不删除它)?
      • 如果您不想为禁用的控件设置工具提示,请查看我的更新答案。
      • 另外,通过不设置工具提示,您可以克服这种情况。最后,这似乎是一个Bug。
      • 我知道有一些变通方法,如果这实际上是预期的行为还是框架中的错误,我的问题更多的是方向?我的意思是它不显示禁用控件的工具提示,那为什么会闪烁?
      • 正如我在之前的评论中所说,这似乎是错误。这不是工具提示的预期行为。
      猜你喜欢
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多