【发布时间】:2017-06-27 23:17:51
【问题描述】:
我通过在 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 或 Hide)时,工具提示会在用户离开文本框时消失,但当他们将鼠标悬停在文本框上时它会返回。我在 MouseHover 事件中没有任何代码。为什么会这样?
谢谢!
更新...抱歉,如果这不是输入更新的正确位置。
感谢您的建议,但它不起作用。我从表单设计器向我的表单添加了一个 ToolTip 控件,现在我的每个控件在 toolTip_patterns 上都有一个名为 ToolTip 的属性。我从 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() 方法不起作用,将标题设置为“”也不起作用。知道我做错了什么吗?谢谢。
【问题讨论】: