Hallo zusammen,
erstmal das typische Blabla das ihr eh schon nicht mehr hören könnt...
... Einsteiger, Versuche mich an einem Programm, über Suche nichts gefunden...
Trotzdem hoffe ich auf Hilfe.
Und nun zu meinem Problem:
Ich habe in einer Form mehrere Textfelder die ich direkt nach der Eingabe per Enter und/oder Verlassen des Textfeldes auslesen will und nicht erst mit einem Button, dabei soll der Wert jeweils in einer eigenen Variablen gespeichert werden.
Im Moment kann ich das nur lösen wenn ich für jedes Textfeld eine neue Prozedur erstelle. Bei mehreren Textfeldern wird das aber sehr schnell zu einem Geduldsspiel und ich frage mich ob ich das nicht eleganter lösen könnte.
Ich bin mir fast sicher dass es geht, habe aber noch keine Möglichkeit gefunden das umzusetzen. Wahrscheinlich ist es so simpel dass es auch deshalb nirgends Erwähnung findet.
Hier ein kurzer Auszug aus meinem Code um es etwas besser zu verdeutlichen:
Übergabe mit Entertaste
Private Sub txt_AnteilMatA1_KeyPress(ByVal sender As Object, ByVal e As _
System.Windows.Forms.KeyPressEventArgs) Handles txt_AnteilMatA1.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
sgl_AnteilMatA1 = txt_AnteilMatA1.Text
End If
End Sub
Private Sub txt_AnteilMatA2_KeyPress(ByVal sender As Object, ByVal e As _
System.Windows.Forms.KeyPressEventArgs) Handles txt_AnteilMatA2.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
sgl_AnteilMatA2 = txt_AnteilMatA2.Text
End If
End Sub
Private Sub txt_AnteilMatA3_KeyPress(ByVal sender As Object, ByVal e As _
System.Windows.Forms.KeyPressEventArgs) Handles txt_AnteilMatA3.KeyPress
If e.KeyChar = Microsoft.VisualBasic.ChrW(Keys.Return) Then
sgl_AnteilMatA3 = txt_AnteilMatA3.Text
End If
End Sub Und das geht dann so weiter...
Es kommt noch einiges mehr im Code selbst hinzu, würde es aber nur unübersichtlich machen.
Man sieht der Code der einzelnen Prozeduren ist nicht 100% gleich aber immer ähnlich. Der einzige Unterschied besteht in der jeweils abgefragten Textbox und der zugehörigen Variablen.
Ich hätte gerne eine Möglichkeit diese Prozeduren zusammenzufassen.
Ich keine Ahnung wie ich das bewerkstelligen könte.
Vielleicht etwas in der Art:
Ereignissprozedur1, Ereignissprozedur2, Ereignissprozedur3, ... ((ByVal sender _
As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles _
Ereignis1, Ereignis2, Ereignis3, ...
Programmcode für txt1, txt2, txt3, ... Gibt es da eine Möglichkeit?
Wie bereits oben erwähnt möchte ich nicht über einen Button alle Variablen auf einmal übergeben sondern sobald etwas eingegeben wurde. Das löse ich zurZeit über KeyPress und Leave. Ist in der Bedienung des Programms meiner Ansicht nach sehr komfortabel. Bin dennoch für Vorschläge offen.
Ich hoffe ihr könnt mir helfen. Gerne auch mit einem Link falls das hier schon irgendwo in den Tiefen des Forums einmal behandelt wurde.
Dimpfe |