以下のコードを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_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);
Iは、以下の非モーダルフォームを試してみました。
toolTip_patterns->SetToolTip((TextBox^)sender, caption);
ツールチップは、微細表示され、私は別のコントロールを押しF1にフォーカスを移動すると、第二の制御のためのツールチップが表示されます。問題は、マウスの上にマウスを置くと、最初のコントロールのツールチップが表示されることです。私は、ユーザーがコントロールを終了した後にツールヒントを表示したくありません。 Hide()メソッドが機能せず、RemoveAll()メソッドが機能せず、キャプションを ""に設定しても機能しません。私が間違っていることは何か考えていますか?ありがとう。
私はそれがMouseEnterイベントに私のコードを移動することで動作するようになりました。私はHelpRequestedイベントで異なる動作をする理由はわかりませんが、私はこのソリューションでうまくいきます。あなたの提案toolTip_patterns-> Show( ""、(TextBox ^)送信者)を使用しました。 MouseLeaveイベントで発生します。助けをありがとう! –