Hallo alle zusammen,
ich habe gerade ein Problem und stehe total auf der Leitung:
Ich habe eine Textbox zur Eingabe eines Dateipfades. Durch Drücken von Enter soll dieser übernommen und die Datei gelesen werden. Dazu habe ich den PreviewKeyUp-Handler folgendermaßen erstellt:
private void textBoxNCPFile_PreviewKeyUp(object sender, System.Windows.Input.KeyEventArgs e)
{
if (e.Key != System.Windows.Input.Key.Enter) return;
e.Handled = true;
ReadToolData(textBoxNCPFile.Text);
}
Die Funktion ReadToolData() überprüft ob die angegebene Datei existiert, wenn nicht wird eine MessageBox mit Fehlermeldung angezeigt.
Bestätige ich nun die MessageBox mit Enter, so kommt die immer wieder, weil der KeyUp-Handler immer wieder aufgerufen wird!
Was mache ich falsch?
Danke für Eure Hilfe.
mfg daengl
Hi daengl,
in deinem Fall musst Du den "sender" überprüfen so wie ich das sehe...
MfG
wax
edit: vergiss es wieder. ich bin um die uhrzeit schon wieder zu müde um konzentriert quellcode zu lesen 😄
Dann setze doch den Focus vor dem Überpüfen einfach auf das Form zurück.
Viele Grüße
Dr. Z
Hallo Dr. Z,
wie meinst du das genau? 🤔
Ich habe im o.g. Code vor der if-Schleife ein MainWindow.Focus(); eingefügt, bringt gar nichts.
mfg daengl
Du könntest mit einer boolschen Instanzvariable arbeiten, die du entsprechend setzt und abfragst.
mit freundlichen Grüßen,
Tomot
Projekte: www.gesellschaftsspieler-gesucht.de
Hi, ja, das hatte ich gemeint. 😃 War auch nur ne spontane Idee, die ich hatte.
Nebenbei heißt die if-schleife nicht if-schleife, weils keijne schleife ist, sondern nur eine Abfrage 😃
Ich denk nochmal drüber nach 😉
Ich mach das immer so:
<Button ... IsDefault="{Binding IsFocused, ElementName=textBox}"/>
Bei einem Enter wird also schön der Button gedrückt, den du sowieso noch zur Kennzeichnung haben solltest.
Alternativ kannst du IsDefault
direkt auf :::{style="color: darkred;"}"True"){darkred}
setzen.
(Btw.: http://if-schleife.de){gray}
mfg
SeeQuark
Hallo,
Ich habe es nun über eine boolsche Variable gelöst, so funktioniert es.
Der Vorschlag mit dem Button funktioniert in diesem Fall nicht, da es sich hierbei um ein Feld zur Eingabe eines Dateinamens handelt und der Knopf daneben "Durchsuchen" heisst, was ich ja nicht unbedingt will wenn ich den Pfad direkt eingebe.
Danke für eure Hilfe
mfg daengl
PS: Tut mir leid, mein erster Informatiklehrer hatte so seine Probleme mit der deutschen Sprache und einmal falsch gelernt wirds schwierig die IF-Schleife wieder loszuwerden. Ich werde mich aber bemühen
PPS: In diesem Fall war es aber wirklich eine IF-Schleife 😁