C#在禁用的文本框(表单)上显示工具提示

C#在禁用的文本框(表单)上显示工具提示,c#,textbox,controls,tooltip,C#,Textbox,Controls,Tooltip,我试图在鼠标悬停期间在禁用的文本框上显示工具提示。我知道,因为控件已禁用,以下内容将无法工作: private void textBox5_MouseHover(object sender, EventArgs e) { // My tooltip display code here } 如何使工具提示显示在禁用控件上方的鼠标上 非常感谢如果控制被禁用,鼠标套将不会启动。相反,无论是否将文本框悬停,都可以签入表单MouseMove事件 public Form1()

我试图在鼠标悬停期间在禁用的文本框上显示工具提示。我知道,因为控件已禁用,以下内容将无法工作:

private void textBox5_MouseHover(object sender, EventArgs e)
{
       // My tooltip display code here
}
如何使工具提示显示在禁用控件上方的鼠标上


非常感谢

如果控制被禁用,鼠标套将不会启动。相反,无论是否将文本框悬停,都可以签入表单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;
        }
    }

您还可以将工具提示对象从designer中的工具箱拖到窗体上。 然后在代码中,您只需调用SetToolTip(),并传入按钮或文本框等。您希望工具提示指定给它,并希望它显示文本

myToolTip.SetToolTip(myTextBox, "You just hovered over myTextBox!");

迟到了,但遇到了同样的问题并找到了更好的解决方案:您可以将文本框包装在另一个项目中,并在其上添加工具提示,如:

<Grid ToolTip="ToolTip to display">
            <TextBox  IsEnabled="False" Text="Text to display" />
</Grid>


还有一个想法-这将如何应用于groupbox中的文本框?然后您应该为groupbox MouseMove事件签名,并执行与Form相同的操作。这可能更可靠:
textBox1.Name==this.GetChildAtPoint(e.Location).Name
除非禁用该控件,否则您不会看到工具提示。这就是他问题的重点。