2012-11-14 92 views
2

我有一个简单的winforms窗体(用作模态对话框),上面有几个控件。我想显示一个文本框控件的工具提示。我在窗体中添加了一个工具提示组件,并在窗体的构造函数中为所需控件执行了一次“SetToolTip”调用。我使用各种延迟属性的默认值。工具提示显示不一致

显示工具提示非常不稳定。当鼠标移到文本框上时,有时会显示工具提示。有时它只会在控件上移动光标时才会显示。将光标移出并移回可能会显示工具提示。当它显示时间似乎比InitialDelay长得多。如果它确实工作了几次,它就会停止工作,并且没有任何数量的离开/进入控件会使工具提示再次出现。

我试着将ShowAlways设置为true,但是没有任何区别。

任何建议让我的工具提示工作可靠?

谢谢。

+0

我通常在Windows中发现工具提示不可预知。其他程序的行为方式相同吗?其他.NET应用程序呢? – Thomas

+0

我不知道我曾经尝试过在Winforms应用程序中使用工具提示。所以,只有这个程序到目前为止。我正在IDE中运行一个调试版本。我已经完成了发布版本,并在IDE之外运行它。它仍然有相同的问题。我注意到当我将鼠标悬停在控件上时,工具提示不显示。但是,如果我移动鼠标,它会显示。 (即在MouseEnter上没有触发工具提示,但在MouseMove上触发)。听到其他人用工具提示收到不可预知的结果,这是令人鼓舞的。谢谢。 – JNygren

+0

确保文本框已启用;它不会触发在禁用时显示工具提示所需的事件。如果您不希望用户更改数据,请使TextBox ReadOnly成为可能。 –

回答

1

我已经有工具提示可靠地工作之前,这里是我做的复制它。

我在表单上放置了一个文本框,标签和工具提示控件作为我的模态对话框。

的文本框我的MouseEnter事件处理程序如下所示:

private void textBox1_MouseEnter(object sender, EventArgs e) 
    { 
     int XOffset = 0; 
     int YOffset = -55; 
     int Duration = 3000; 

     toolTip1.ToolTipTitle = "ToolTip."; 

     toolTip1.Show("This is my tooltip. there are many like it but this one is mine", 
       textBox1, XOffset, YOffset, Duration); 
    } 

就是这样。当我用鼠标输入文本框时,工具提示会出现3秒钟,然后消失,并且始终如此。注意我不必在任何地方调用“SetToolTip”。此外,让你的补偿,所以工具提示并没有掩盖控制的任何部分,因为这似乎会造成怪异。