Hallo,
ich habe ein Problem mit ToolTip.
Ich habe einen Button. Darin liegt eine TextBox. Nun möchte ich, wenn etwas falsches in die TextBox eingetragen wird, einen ToolTip anzeigen. Das klappt aber nur, wenn man sich mit dem Mauscursor nicht innerhalb des Buttons befindet.
Den ToolTip lasse ich folgendermaßen anzeigen:
fnodeInfo.toolTip.Show("Text", this, 3000);
fnodeInfo ist ein Form, this ist ein Button, in dem einen Textbox liegt.
Woran könnte es liegen, das wenn ich mich mit der Maus in dem Button befinde kein ToolTip angezeigt wird?
Ich denke, es könnte daran liegen, dass ein ToolTip ja generell verschwindet, wenn man mit der Maus darüber fährt.
Kann man dieses Verhalten ändern?
Bei solchen Sachen bin ich eher brutal und verwende eine MessageBox.
MessageBox.Show("Text", MessageBoxButtons.OK, MessageBoxIcon.Error);
Da du ja anscheinend eine Überprüfung während der Eingabe hast, kannst du somit gleich verhindern, dass ungültige Zeichen eingetippt werden können.
d.h. mit der MassageBox hinweisen, dass das Zeichen 'X' nicht erlaubt ist.
Coitus ergo sum!
@ TCUhimself:
.....MassageBox ....
immer wider lustig, die Massage Box 😁 😁
@punkdevil
natürlich könntest du den Mauszeigen solange verschieben, bis er nicht mehr über der entsprechenden stelle ist mit Cursor.Position = ....
aber das ist eher eine nervige angelegenheit, also am besten wirklich eine MessageBox (oder schon im KeyDown Event, wenn du bestimmte Buchstaben, Ziffern, etc,... ausschließen willst.)
Hallo
Warum nicht den ErrorProvider verwenden?
Bietet sich doch hier an.
Gruss
@TCUhimself: Ich hatte rest ne MessageBox, aber das ist nervig, da diese ja immer vom Nutzer geschlossen werden muss.
@nin: Im KeyDown könnte ich es machen, aber ich möchte dem Nutzer mitteilen, warum diese Eingabe nicht gültig ist.
@Fellmer Lloyd: ErrorProvider kenne ich noch nicht, aber ich werde es mir mal ansehen.
Was auch gerne verwendet wird, ist oberhalb einer Eingabe, ein Text mit einem Label in roter Farbe, falls bei der Eingabe etwas ungültig sein sollte.
Im InitializeComponent hat dieses Label keinen Text und ForeColor ist z.B. "Red" (System.Drawing.Color.Red);
this.InvalidDataLabel.Text = "Text";
Coitus ergo sum!
Original von TCUhimself
Was auch gerne verwendet wird, ist oberhalb einer Eingabe, ein Text mit einem Label in roter Farbe, falls bei der Eingabe etwas ungültig sein sollte.
Im InitializeComponent hat dieses Label keinen Text und ForeColor ist z.B. "Red" (System.Drawing.Color.Red);this.InvalidDataLabel.Text = "Text";
Da ist aber der Error Provider deutlich eleganter.
Am besten wirkt dieser, wenn man zusätzlich noch einen Systemsound abspielt.