禁用控件的ToolTip行为中的错误?

时间:2014-01-15 08:01:11

标签: c# winforms tooltip

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

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

//编辑:刚刚确认该错误仍然存​​在于.NET 4.5.1

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

您可以尝试以下方法

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");