J'ai créé une info-bulle pour une zone de texte en incluant le code ci-dessous dans l'événement HelpRequested.Impossible de masquer l'info-bulle
ToolTip^ toolTip_patterns = gcnew ToolTip;
String^ caption;
caption = "Help the user blah blah...";
toolTip_patterns->Show(caption, this->textBox_patternsTer);
Je souhaite que l'info-bulle disparaisse lorsque l'utilisateur quitte la zone de texte. Il ne doit pas être affiché à moins que l'utilisateur n'appuie à nouveau sur F1. J'ai essayé de cacher l'info-bulle avec le code ci-dessous dans l'événement Leave.
ToolTip^ toolTip_patterns = gcnew ToolTip;
toolTip_patterns->RemoveAll();
Ce qui précède ne fonctionne pas, j'ai donc essayé ce qui suit. Cela ne fonctionne pas non plus.
toolTip_patterns->Hide(this->textBox_patternsTer);
Lorsque j'utilise une ou l'autre méthode (RemoveAll ou Masquer), la pointe de l'outil disparaît lorsque l'utilisateur quitte la zone de texte, mais il revient quand ils planent la souris sur la zone de texte. Je n'ai aucun code dans l'événement MouseHover. Pourquoi fait-il cela?
Merci!
Mise à jour ... Désolé, ce n'est pas le bon endroit pour taper une mise à jour.
Merci pour la suggestion, mais cela ne fonctionne pas. J'ai ajouté un contrôle ToolTip à mon formulaire à partir du concepteur de formulaire, et chacun de mes contrôles a maintenant une propriété nommée ToolTip sur toolTip_patterns. J'ai supprimé la déclaration ci-dessous de l'événement HelpRequest.
ToolTip^ toolTip_patterns = gcnew ToolTip
Je définis le texte à afficher avec le code ci-dessous.
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);
J'ai également essayé la forme non-modale ci-dessous.
toolTip_patterns->SetToolTip((TextBox^)sender, caption);
L'infobulle affiche bien, et quand je me déplace le focus à un autre contrôle et appuyez sur F1, la pointe de l'outil pour la deuxième commande est affiché. Le problème est que l'info-bulle du premier contrôle est affichée lorsque je passe la souris dessus. Je ne souhaite pas que les info-bulles s'affichent une fois que l'utilisateur a quitté le contrôle. La méthode Hide() ne fonctionne pas, la méthode RemoveAll() ne fonctionne pas et la définition de la légende sur "" ne fonctionne pas. Une idée de ce que je fais mal? Merci.
Je l'ai à travailler en déplaçant mon code à l'événement MouseEnter. Je ne sais pas pourquoi cela agit différemment dans l'événement HelpRequested mais je suis bon avec cette solution. J'ai utilisé votre suggestion toolTip_patterns-> Show ("", (TextBox ^) expéditeur); dans l'événement MouseLeave. Merci beaucoup pour l'aide! –