簡體   English   中英

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

[英]C# Display a tooltip on disabled textbox (Form)

我試圖讓工具提示在鼠標懸停期間顯示在禁用的文本框上。 我知道因為控件被禁用,以下將不起作用:

private void textBox5_MouseHover(object sender, EventArgs e)
{
       // My tooltip display code here
}

如何在鼠標懸停在禁用控件上時顯示工具提示?

非常感謝

如果控制被禁用,則 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;
        }
    }

在此處輸入圖片說明

您還可以將工具提示對象從設計器中的工具箱拖動到表單上。 然后在代碼中,您只需調用 SetToolTip() 並傳入按鈕或文本框等。您希望將工具提示分配給您希望它顯示的文本。

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

遲到了,但遇到了同樣的問題並找到了更好的解決方案:您可以將 TextBox 包裝在另一個項目中並在其上放置一個工具提示,例如:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM