Hallo Leute,
ich habe folgendes Problem:
Zuerst einmal entwickel ich gerade ein Programm das einen Inhalt in meine Combobox aufnimmt. Daraus wird dann geprüft, Wenn Text 1 eintritt, kann der Benutzer Textboxen mit Werten füllen. Bei Drücken der Entertaste wird dann eine Addition durchgeführt. Das Drücken der Entertaste ist aber nur für eine Textbox konfiguriert. Wenn dann Enter gedrückt wird verschwindet der Inhalt der Textbox. Bei erneuter Eingabe der Enter-Taste ist der Inhalt wieder da. Die Addition funktioniert jedoch auch , wenn der Text nicht angezeigt wird.
Zusammengefasst funktioniert meine kleine Applikation, jedoch wird bei bestätigen der Enter-Taste der Inhalt für die Tb vom Key-Press Event "gelöscht" bei erneutem drücken der Enter-Taste aber wieder angezeigt.
Bitte um Hilfe 😃 unten angeführt mein Quellcode für das KEY-Down Event:
if (e.KeyCode == Keys.Enter)
{
if (comboBox1.Text == "PA")
{
double länge = 0.0;
double temp = 0.0;
double index_PA = 0.11;
double errechnetesMaß = 0.0;
double maßstabsfaktor = 0.0;
temp = Convert.ToDouble(this.tbTemperatur.Text);
länge = Convert.ToDouble(this.tbLänge.Text);
errechnetesMaß = (temp - 20) * index_PA + länge;
maßstabsfaktor = errechnetesMaß / länge;
tbAusdehnungsfaktor.Text = Convert.ToString(index_PA);
tbErrechnetesMaß.Text = Convert.ToString(errechnetesMaß);
tbErgebnis.Text = Convert.ToString(maßstabsfaktor);
tbLänge.Text = Convert.ToString(länge);
}
else if (comboBox1.Text == "PE")
{
double länge = 0.0;
double temp = 0.0;
double index_PA = 0.18;
double errechnetesMaß = 0.0;
double maßstabsfaktor = 0.0;
temp = Convert.ToDouble(this.tbTemperatur.Text);
länge = Convert.ToDouble(this.tbLänge.Text);
errechnetesMaß = (temp - 20) * index_PA + länge;
maßstabsfaktor = errechnetesMaß / länge;
tbAusdehnungsfaktor.Text = Convert.ToString(index_PA);
tbErrechnetesMaß.Text = Convert.ToString(errechnetesMaß);
tbErgebnis.Text = Convert.ToString(maßstabsfaktor);
tbLänge.Text = Convert.ToString(länge);
}
else if (comboBox1.Text == "POM/PET")
{
double länge = 0.0;
double temp = 0.0;
double index_PA = 0.12;
double errechnetesMaß = 0.0;
double maßstabsfaktor = 0.0;
temp = Convert.ToDouble(this.tbTemperatur.Text);
länge = Convert.ToDouble(this.tbLänge.Text);
errechnetesMaß = (temp - 20) * index_PA + länge;
maßstabsfaktor = errechnetesMaß / länge;
tbAusdehnungsfaktor.Text = Convert.ToString(index_PA);
tbErrechnetesMaß.Text = Convert.ToString(errechnetesMaß);
tbErgebnis.Text = Convert.ToString(maßstabsfaktor);
tbLänge.Text = Convert.ToString(länge);
}
Hi Paddy93,
was ist eigentlich deine Frage? Du kannst doch mit dem Debugger herausfinden, was zu welchem Zeitpunkt in der Textbox steht. Ich verstehe daher nicht, wie man dir helfen könnte.
Christian
Weeks of programming can save you hours of planning
Über die Einzelschritt-Methode von VS bin ich das schon durchgegangen.
Leider ohne Erfolg.
Das Problem liegt darin das ich bei Programmstart die Textboxen mit Werten fülle und beim 1. Druck der Entertaste, der Inhalt der TextBox verschwindet, bei der ich das KEY-Down Event erstellt habe.
Drücke ich die Enter-Taste ein 2. mal ist der Inhalt wieder da. Jedoch möchte ich das so haben, dass der Inhalt beim 1. Druck nicht verschwindet. Und ich weiß nicht wo der Fehler ist.
Hallo Paddy93,
was ist denn der Inhalt Deines KeyDown-Event?
Du scheinst dort die text-Eigenschaft ja anzufassen.
Viele Grüße,
telfa
Die oben gepostete IF-Anweisung ist der komplette Inhalt meines Key-Down Events.
Hallo Paddy93,
sorry, das hatte ich jetzt nicht bedacht.
In dem Event behandelst Du scheinbar vier TextBoxen:
Zu welcher TextBox ist das Event denn abonniert?
Deine Angaben erscheinen leider dürftig.
telfa
Über die Einzelschritt-Methode von VS bin ich das schon durchgegangen.
Leider ohne Erfolg.
Das versteh ich nicht, du musst doch sehen ob sich bei irgend einer Zeile der Text deiner TextBox ändert, wenn nicht an welcher stelle deines Programmes verschwindet er dann?
Warum schreibst du die länge überhaupt wieder zurück in die Textbox? an dem wert länge ändert sich ja nichts?
Verschwindet der text auch wenn deine KeyDown Methode keinen Code enthält?
Am besten einfach mal debuggen und sehen an welcher stelle die Text property deiner TextBox leer wird.
Nebenbei dein Code enthält 3 mal exakt das selbe nur das der index_pa sich unterscheidet. DRY
Tut mir Leid, aber ich bekomm es nicht hin. Ich hab das ganze jetzt noch einmal per Einzelschritt durchdebuggt.
Vielleicht habe ich das auch falsch erklär an welcher Stelle der Text verschwindet.
Ich versuchs nochmal erneut.
In meiner Form befindet sich eine ComboBox mit 3 Einträgen.
Darunter eine Groupbox mit 5 Textboxen.
Einmal die Temperatur, Länge, Ausdehnungsfaktor und Errechnetes Maß.
Der Benutzer gibt aber nur in der TextBox Temperatur und Länge etwas ein. Nachdem in der TextBox Länge ein Zahl eingegeben wurde und auf 'Enter'- gedrückt wurde verschwindet nur der Inhalt in der TextBox Länge, die anderen Werte sind werden richtig ausgerechnet. Der EventHandler Key-Down bezieht sich auf die TextBox tbLaenge
Drücke ich erneut die 'Enter'-Taste ist der der Wert wieder da.
Zum besseren Nachvollziehen kann ich auch gerne mein Projekt per Email zusenden.
Ich verzweifle nur gerade.
Lass doch mal die Zeile(n)
tbLänge.Text = Convert.ToString(länge);
weg. Hat Console32 ja schon geschrieben, dass das Zurückschreiben sinnlos ist.
hi Paddy93,
ich kenne dein problem.
hier die lösung
anstelle von: tbLänge.Text = Convert.ToString(länge);
schreibst du einfach: tbLänge.Text = länge.ToString("F");
try it out and say Baba to me 8)