我认为我有一个不寻常的问题,很多关于工具提示的问题是:为什么不显示,或者为什么不显示多次。
但是我的问题是,当我将鼠标悬停在我的工具提示标签上时,如果我将鼠标缓慢移动到每个像素所显示的标签上,则工具提示会显示几次。
我尝试过这样的事情:ToolTip1.ReshowDelay = 500;
但这似乎没有任何影响。
我也尝试使用label1_MouseEnter
和label1_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);
}
答案 0 :(得分:3)
通过使用悬停事件处理程序来创建工具提示,每次用户将鼠标悬停在其上时,您都会创建一个新的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");
}
或者,您可以在表单的加载事件处理程序中创建工具提示。