Input aus mehreren TextBoxen in einer TextBox

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Lightsource.

    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?

    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. :D

    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

    1. Option Strict On
    2. Public Class Form1
    3. Private slot As Integer = 0
    4. Private unknown As Integer = 1
    5. Private perfection As Integer = 0
    6. Private textBoxValue1 As New TextBox
    7. Private textBoxValue2 As New TextBox
    8. Private textBoxValue3 As New TextBox
    9. Private textboxSlot As New TextBox
    10. Private textboxPerfection As New TextBox
    11. Private Sub SPPerfection_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    12. textBoxValue1.Tag = 1
    13. textBoxValue2.Tag = 2
    14. textBoxValue3.Tag = 3
    15. textBoxValue1.Location = New Point(10, 10)
    16. textBoxValue2.Location = New Point(10, 35)
    17. textBoxValue3.Location = New Point(10, 60)
    18. textboxSlot.Location = New Point(100, 10)
    19. textboxPerfection.Location = New Point(100, 35)
    20. Controls.AddRange({textBoxValue1, textBoxValue2, textBoxValue3, textboxSlot, textboxPerfection})
    21. AddHandler textBoxValue1.TextChanged, AddressOf TextBoxes_TextChanged
    22. AddHandler textBoxValue2.TextChanged, AddressOf TextBoxes_TextChanged
    23. AddHandler textBoxValue3.TextChanged, AddressOf TextBoxes_TextChanged
    24. AddHandler textboxSlot.TextChanged, AddressOf TextBoxes_TextChanged
    25. AddHandler textboxPerfection.TextChanged, AddressOf TextBoxes_TextChanged
    26. End Sub
    27. Private Sub TextBoxes_TextChanged(sender As Object, e As EventArgs)
    28. Dim tb As TextBox = DirectCast(sender, TextBox)
    29. Dim tmp As Integer
    30. If Not Integer.TryParse(tb.Text, tmp) Then
    31. MessageBox.Show("Ungültige Eingabe")
    32. Return
    33. End If
    34. Select Case True
    35. Case tb Is textboxSlot
    36. slot = tmp
    37. Case tb Is textboxPerfection
    38. perfection = tmp
    39. Case tb Is textBoxValue1 Or tb Is textBoxValue2 Or tb Is textBoxValue3
    40. perfection = tmp
    41. unknown = CInt(tb.Tag)
    42. End Select
    43. MessageBox.Show($"$Perfection {slot} {unknown} {perfection}")
    44. End Sub
    45. End Class

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Takafusa“ ()

    @Takafusa
    Ich habe deinen Code eben in einem neuen Projekt ausgeführt und verstehe überhaupt nicht wie du auf das kommst und inwiefern das mit meinem Code bzw. mit dem was ich am Ende haben will zusammen passen soll?
    Mein Code ist doch nahezu fertig oder nicht?
    Alles ohne $edit CheckBox funktioniert soweit nur wenn ich die CheckBox anklicke soll sich lediglich der Anfang des Commands ändern.
    gyazo.com/130ac4bd196da1bd8d660befab85ed2d
    Vor $Perfection kommt dann einfach noch $edit NAME und dann erst $Perfection und der Rest.
    Wie gesagt alles bleibt nur die zwei weiteren "Commands" kommen dazu.
    Wie man am Video sieht passt der Command gar nicht wenn man die CheckBox angewählt hat und man den Namen in die NameTextBox eingegeben hat.
    "$edit CheckBox" anwählen -> Namen eingeben -> Command "$edit Name" dann gibt man erst was ein in einen der 9 bzw 10 (mit Slot) TextBoxen ein und erhählt je nachdem z.b. Perfection 100 auf Slot 0 wäre das:
    "$edit Name $Perfection 0 0 100"

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „MrSKY“ ()

    Sieh dir an was ich mache, lerne, verstehe es. Ich hab dir alles gesagt was du dazu wissen musst. Wenn du jetzt noch nicht in der Lage bist, meinen Code zu verstehen, musst du dran bleiben bist du es verstehst(Löffelmann's PDF, hilft wirklich). Jedenfalls reicht es wenn du in deinem Code ohne irgendwas von mir zu verwenden(war nur ein verbesserungvorschlag), abgesehen von den 3 Variablen, weiss denen die Werte zu in den einzelnen Events Subs, und mach aus den Werten der Variablen den CommandString, Problem gelöst.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Takafusa“ ()

    Alles gesagt, 3 Variablen deklarieren, in den Event Subs die werte zuweisen, aus den Werten der Variablen den CommandString bilden, mehr is nich zu machen.

    MrSKY schrieb:

    PDF oder was auch immer durchlesen bringt mir gerade relativ wenig wenn ich einfach nur mein Problem gelöst bekommen will


    Falsch! In dem Buch werden die Grundlagen erklärt, ohne die zu lernen kann man nicht programmieren und hier geht es gerade um ein Problem mit Grundlagen. Dort werden Variablen erklärt, Events auch, wobei ich das wichtigste zu Events schon gesagt habe. Also Zeile 1 in diesem Post, mehr musst du nicht machen, das andere war nur ein Verbesserungsvorschlag, kannste noch nichts mit anfangen OK. Bleib bei deinem Code aus dem ersten Post(der 2. Code, aber mit Option Strict On), nur hinzufügen was ich hier in der ersten Zeile schrieb, schau dir das andere später irgendwann noch mal an.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Takafusa“ ()

    MrSKY schrieb:

    wenn ich einfach nur mein Problem gelöst bekommen will


    In dem Fall solltest du einem Programmierer einen Auftrag erteilen, der die Sache professionell löst.
    Das kostet dich eventuell etwas Geld, und du lernst nichts dabei.
    Vielleicht bist du ja Autoschlosser und in einem Forum wo dich jemand fragt, wie er sich am besten einen neuen Kolben für sein Auto, mit der Handfeile zurechtfeilen könnte.
    Du wirst ihm wahrscheinlich schreiben, dass er zuerst mal eine Dreherlehre machen sollte, oder nicht?