我通過將以下代碼包含在HelpRequested事件中,爲文本框創建了一個工具提示。無法隱藏工具提示
ToolTip^ toolTip_patterns = gcnew ToolTip;
String^ caption;
caption = "Help the user blah blah...";
toolTip_patterns->Show(caption, this->textBox_patternsTer);
我希望在用戶離開文本框時工具提示消失。除非用戶再次按F1,否則不應顯示。我嘗試在Leave事件中使用下面的代碼隱藏工具提示。
ToolTip^ toolTip_patterns = gcnew ToolTip;
toolTip_patterns->RemoveAll();
上述不起作用,所以我嘗試了以下。這也不起作用。
toolTip_patterns->Hide(this->textBox_patternsTer);
當我使用這兩種方法(removeall過或隱藏),當用戶離開文本框工具提示消失,但是當他們將鼠標懸停在文本框中它回來。我在MouseHover事件中沒有任何代碼。它爲什麼這樣做?
謝謝!
更新...對不起,如果這不是輸入更新的正確位置。
感謝您的建議,但它不起作用。我從表單設計器向我的表單添加了一個ToolTip控件,現在我的每個控件都在toolTip_patterns上有一個名爲ToolTip的Property。我從HelpRequest事件中刪除了下面的聲明。
ToolTip^ toolTip_patterns = gcnew ToolTip
我將下面的代碼設置爲顯示文本。
private: System::Void textBox_patterns_HelpRequested(System::Object^ sender, System::Windows::Forms::HelpEventArgs^ hlpevent)
{
String^ caption;
String^ module;
if (sender == textBox_patternsTer)
module = "Terminator";
else if (sender == textBox_patternsSec)
module = "Secondary";
else if (sender == textBox_patternsPri)
module = "Primary";
else
return; // No help for selected control.
caption = "Enter 32 bit Hex patterns for the " + module + " one pattern per line.\n";
toolTip_patterns->InitialDelay = 0; //< immediately show help
toolTip_patterns->Show(caption, (TextBox^)sender);
我也嘗試了下面的非模態形式。
toolTip_patterns->SetToolTip((TextBox^)sender, caption);
工具提示顯示正常,當我將焦點移動到另一個控件並按F1時,顯示第二個控件的工具提示。問題是,當我將鼠標懸停在第一個控件上時,會顯示第一個控件的工具提示。我不希望在用戶退出控件後顯示工具提示。 Hide()方法不起作用,RemoveAll()方法不起作用,並且將標題設置爲「」不起作用。任何想法我做錯了什麼?謝謝。
我得到它通過我的代碼移動到MouseEnter事件工作。我不知道爲什麼它在HelpRequested事件中行爲不同,但我對此解決方案很滿意。我用你的建議工具Tip_patterns-> Show(「」,(TextBox ^)sender);在MouseLeave事件中。非常感謝您的幫助! –