我正试图在鼠标悬停期间显示工具提示以显示在禁用的文本框上。我知道,因为控件被禁用,以下操作无效:
private void textBox5_MouseHover(object sender, EventArgs e)
{
// My tooltip display code here
}
如何让鼠标悬停在禁用的控件上显示工具提示?
非常感谢
答案 0 :(得分:17)
如果禁用控件,MouseHover将不会触发。相反,您可以检查Form MouseMove事件是否悬停文本框
public Form1()
{
InitializeComponent();
textBox1.Enabled = false;
toolTip.InitialDelay = 0;
}
private ToolTip toolTip = new ToolTip();
private bool isShown = false;
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
if(textBox1 == this.GetChildAtPoint(e.Location))
{
if(!isShown)
{
toolTip.Show("MyToolTip", this, e.Location);
isShown = true;
}
}
else
{
toolTip.Hide(textBox1);
isShown = false;
}
}
答案 1 :(得分:0)
您还可以将ToolTip对象从设计器中的工具箱拖到窗体上。 然后在代码中,您只需调用SetToolTip()并传入按钮或文本框等,您希望工具提示分配给您希望它显示的文本。
myToolTip.SetToolTip(myTextBox, "You just hovered over myTextBox!");
答案 2 :(得分:0)
晚了聚会,但是遇到了同样的问题,找到了一个更好的解决方案:您可以将TextBox包裹在另一个Item中,然后在上面放一个ToolTip,就像这样:
<Grid ToolTip="ToolTip to display">
<TextBox IsEnabled="False" Text="Text to display" />
</Grid>