Also entweder du benutzt jeweils eine eigene Sub für jedes textChanged der textBoxen, oder alles in einer. Warum du das nun doppelt gemoppelt hast, musst du mir mal erklären. Mein Code war als Beispiel gedacht, wie man sowas zusammen führen kann. Das bedeutet nicht das du das hinzufügen solltest ohne die anderen event Sub zu entfernen. Entweder so oder so, nicht beide Arten. Ich habs ja auch nicht für jedes Event eine eigene Sub im Code oder?
Wie darf ich das Verstehen?
Kann man irgendwie in 2 TextBoxen gleichzeitig schreiben? Also ich hab nur einen Cursor den ich platzieren kann.
Um ganz ehrlich zu sein. Ich täte das ganze mit den textBoxen nochmal überdenken. Ich denke NumericUpDown wäre das geeignetere Control. Ich sehe du änderst in der TB Slot den Text und scheinst dann Werte zu vermissen. Woran liegt es? Du hohlst den Text ja aus den textBoxen, das Problem was du hast du weist nicht welche die letzte war, hast ja viele. Was macht man nun? Glasklare Sache! Man speichert irgendwas, was man später noch braucht. Wie? Mit einer Variable, keine Zauberei. ich sehe das im CommandString immer 3 Zahlen sind. Also 3 Variablen vom Typ Integer z.B.. Also Slot, ein unbekannter Wert und Perfection. Ändere die Variablen bei TextChanged Events. So hast du die Daten auch zur verfügung, wenn du den Text der SlotTextbox änderst. Beachte auch, diesmal habe ich den Tag welcher ja vom Typ Object ist, einen Integer zugewiesen, keinen String.
Lass dich von der String interpolation nicht verwirren, in der Zeile mit der MessageBox. Jetzt fragst du dich was String Interpolation ist? Google:
MrSKY schrieb:
Ich will das man immer nur in einer TextBox schreiben kann oder keine Ahnung wie ich das anders lösen kann damit folgendes nicht passieren kann:
Wie darf ich das Verstehen?
Kann man irgendwie in 2 TextBoxen gleichzeitig schreiben? Also ich hab nur einen Cursor den ich platzieren kann.
Um ganz ehrlich zu sein. Ich täte das ganze mit den textBoxen nochmal überdenken. Ich denke NumericUpDown wäre das geeignetere Control. Ich sehe du änderst in der TB Slot den Text und scheinst dann Werte zu vermissen. Woran liegt es? Du hohlst den Text ja aus den textBoxen, das Problem was du hast du weist nicht welche die letzte war, hast ja viele. Was macht man nun? Glasklare Sache! Man speichert irgendwas, was man später noch braucht. Wie? Mit einer Variable, keine Zauberei. ich sehe das im CommandString immer 3 Zahlen sind. Also 3 Variablen vom Typ Integer z.B.. Also Slot, ein unbekannter Wert und Perfection. Ändere die Variablen bei TextChanged Events. So hast du die Daten auch zur verfügung, wenn du den Text der SlotTextbox änderst. Beachte auch, diesmal habe ich den Tag welcher ja vom Typ Object ist, einen Integer zugewiesen, keinen String.
Lass dich von der String interpolation nicht verwirren, in der Zeile mit der MessageBox. Jetzt fragst du dich was String Interpolation ist? Google:
VB.Net String Interpolation
(erstes ergebniss bei MS)VB.NET-Quellcode
- Option Strict On
- Public Class Form1
- Private slot As Integer = 0
- Private unknown As Integer = 1
- Private perfection As Integer = 0
- Private textBoxValue1 As New TextBox
- Private textBoxValue2 As New TextBox
- Private textBoxValue3 As New TextBox
- Private textboxSlot As New TextBox
- Private textboxPerfection As New TextBox
- Private Sub SPPerfection_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- textBoxValue1.Tag = 1
- textBoxValue2.Tag = 2
- textBoxValue3.Tag = 3
- textBoxValue1.Location = New Point(10, 10)
- textBoxValue2.Location = New Point(10, 35)
- textBoxValue3.Location = New Point(10, 60)
- textboxSlot.Location = New Point(100, 10)
- textboxPerfection.Location = New Point(100, 35)
- Controls.AddRange({textBoxValue1, textBoxValue2, textBoxValue3, textboxSlot, textboxPerfection})
- AddHandler textBoxValue1.TextChanged, AddressOf TextBoxes_TextChanged
- AddHandler textBoxValue2.TextChanged, AddressOf TextBoxes_TextChanged
- AddHandler textBoxValue3.TextChanged, AddressOf TextBoxes_TextChanged
- AddHandler textboxSlot.TextChanged, AddressOf TextBoxes_TextChanged
- AddHandler textboxPerfection.TextChanged, AddressOf TextBoxes_TextChanged
- End Sub
- Private Sub TextBoxes_TextChanged(sender As Object, e As EventArgs)
- Dim tb As TextBox = DirectCast(sender, TextBox)
- Dim tmp As Integer
- If Not Integer.TryParse(tb.Text, tmp) Then
- MessageBox.Show("Ungültige Eingabe")
- Return
- End If
- Select Case True
- Case tb Is textboxSlot
- slot = tmp
- Case tb Is textboxPerfection
- perfection = tmp
- Case tb Is textBoxValue1 Or tb Is textBoxValue2 Or tb Is textBoxValue3
- perfection = tmp
- unknown = CInt(tb.Tag)
- End Select
- MessageBox.Show($"$Perfection {slot} {unknown} {perfection}")
- End Sub
- End Class
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Takafusa“ ()