j'ai posé une question étroitement liée à cela il y a quelque temps: Alternative way to notify the user of an errorinfobulle position d'affichage baloon (pour la notification d'erreur)
En bref, je tente de trouver un moyen rapide et facile d'informer l'utilisateur des erreurs sans utiliser popups.
Maintenant, j'ai implémenté cela en utilisant des bulles d'info-bulle. Le problème est que même si je lui donne un emplacement général, la petite partie pointue de la bulle change de position en fonction de la taille du message (voir image ci-jointe). Normalement, je voudrais utiliser SetToolTip() et lui assigner un contrôle afin qu'il pointe toujours vers ce contrôle. Cependant, le contrôle est une étiquette ou une image dans une barre d'état.
private void ShowTooltipBalloon(string title, string msg)
{
if (this.InvokeRequired)
{
this.BeginInvoke(new EventHandler(delegate { ShowTooltipBalloon(title,msg); }));
}
else
{
ToolTip tt = new ToolTip();
tt.IsBalloon = true;
tt.ToolTipIcon = ToolTipIcon.Warning;
tt.ShowAlways = true;
tt.BackColor = Color.FromArgb(0xFF, 0xFF, 0x90);
tt.ToolTipTitle = title;
int x = this.Width - lblLeftTarget.Width - lblVersion.Width - toolStripStatusLabel8.Width - 10;
int y = this.Height - lblLeftConnectImg.Height - 60;
tt.Show(msg, this, x, y, 5000);
}
}
Ceci est très bien hors de la portée des exigences, mais mon patron est pointilleux sur les détails, donc en plus de résoudre ce, je dois résoudre rapidement. J'ai besoin de quelque chose de relativement facile à mettre en œuvre qui ne fera pas «basculer le bateau» du logiciel actuel que je suis sur le point de publier.
Cela étant dit, bien sûr, je vais écouter tout conseil, que ce soit implémentable ou non. Au moins, je pourrais apprendre quelque chose.
* EDIT: Il semble que mon image ne s'affiche pas. Je ne sais pas si c'est juste mon ordinateur. Eh bien ...
Sans créer votre propre formulaire d'infobulle, vous devez contrôler la longueur de la ligne (c.-à-d. Utiliser Environment.NewLine après 50 caractères) pour assurer une largeur standard. –