Textboxen anhabnd von Combobox füllen!

  • VB.NET

Es gibt 14 Antworten in diesem Thema. Der letzte Beitrag () ist von ThePlexian.

    Textboxen anhabnd von Combobox füllen!

    Edit by ErfinderDesRades: (Thema verschoben) Bitte richtiges UnterForum wählen!


    Hallo zusammen,

    ich versuche gerade in einer Combobox eine Auswahl zu treffen,wurde das gemacht sollen 2 Textboxen mit fixen werden gefültt werden.
    Da ich da ca. 40 verschiedene Auswahlen in der Combobox habe solte der code sehr einfach sein!

    Habe es so versucht

    VB.NET-Quellcode

    1. Dim Auswahl As Integer = ComboBox1.SelectedIndex
    2. If Auswahl = "AA" Then TextBox1.Text = ("3") & TextBox2.Text = ("449")


    leider klappt das so nicht :(

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

    Hey,

    bilde Deine Daten in einer Klasse, respektive einer Datatable ab und binde die entsprechenden Properties per BindingSource an die TextBoxen.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Klar:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private _bS As New BindingSource
    3. Public Sub New()
    4. InitializeComponent()
    5. _bS.Add(New Stuff With {.Description = "Test1", .Text1 = "huhu1", .Text2 = "huhu2"})
    6. _bS.Add(New Stuff With {.Description = "Test2", .Text1 = "huhu3", .Text2 = "huhu4"})
    7. _bS.Add(New Stuff With {.Description = "Test3", .Text1 = "huhu5", .Text2 = "huhu6"})
    8. _bS.Add(New Stuff With {.Description = "Test4", .Text1 = "huhu7", .Text2 = "huhu8"})
    9. _bS.Add(New Stuff With {.Description = "Test5", .Text1 = "huhu9", .Text2 = "huhu10"})
    10. _bS.Add(New Stuff With {.Description = "Test6", .Text1 = "huhu11", .Text2 = "huhu12"})
    11. _bS.Add(New Stuff With {.Description = "Test7", .Text1 = "huhu13", .Text2 = "huhu14"})
    12. ComboBox1.DataSource = _bS
    13. ComboBox1.DisplayMember = "Description"
    14. TextBox1.DataBindings.Add(New Binding("Text", _bS, "Text1"))
    15. TextBox2.DataBindings.Add(New Binding("Text", _bS, "Text2"))
    16. End Sub
    17. End Class
    18. Public Class Stuff
    19. Public Property Text1 As String
    20. Public Property Text2 As String
    21. Public Property Description As String
    22. End Class


    Hier ein Beispiel anhand einer Klasse. Eleganter ist die Lösung per DataSet. Hier musst Du Dich aber selber einlesen, da man zuerst verstehen muss, wie man Daten in eine DataTable/DataSet bringt. Hier eine Einführung mit weiterführenden Links.

    vb-paradise.de/allgemeines/tip…iten-einfachste-variante/
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Vielen Dank für die Rasche Hilfe,nur da Blick ich nicht ganz durch :)

    Am liebsten währe mir das ganze eben so,ist sicher nicht die sauberste lösung solte do so auch gehen oder?

    VB.NET-Quellcode

    1. Dim Auswahl As Integer = ComboBox1.SelectedIndex
    2. If Auswahl = "AA" Then TextBox1.Text = ("3") & TextBox2.Text = ("449")


    Auswahl in der Combobox und die Textbox1 wird mit dem wert 3 und die Textbox2 mit dem Wert 449 gefüllt.
    Tja. Wenn Du das so willst, musst Du wohl warten, dass Dir jemand anders hilft. Ich hab Dir doch genug Stichworte + Beispiel gegeben, wonach man sich richten kann (MSDN, Google, Bücher?). Hast Du denn nicht mal den Code kopiert und in ein Projekt eingefügt, um zu sehen, wie das arbeitet? Schade.

    Bei was anderem helfe ich Dir nicht, weil es in eine Sackgasse führt und Du Dir die Finger wund-schreibst :) Deine Entscheidung.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Also ich habe den Code natürlich versucht !Jedoch sucht er da nach die Datenquelle.
    Die ich ihm nicht erstellen kann mit meinem wissen !!
    Bin dir auch Dankbar ,ich hoffe du hast das nicht falsch verstanden !!

    Ich dachte eben das es einen ganz einfachen Code gibt um diese beiden Textboxen zu füllen.
    Für dich ist dein Code sicher logisch und leicht neheme ich an,für mich leider nicht :(
    Daher würde ich das gerne so machen wie ich es geschrieben habe,den das verstehe ich.
    Wolte dir nicht auf die Füße steigen.

    Lg.
    Der Code von SpaceyX ist einwandfrei, irgendwas wirst du dann falsch gemacht haben. Mach mal ein neues Projekt, schmeiss eine ComboBox und zwei TextBoxen auffe Form und Kopiere den Code dort rein. Wie SpaceyX schon sagte, du würdest dir die Finger Wund tippen.

    Schade eigendlich, du bekommst einen guten Code und weil du ihn nicht verstehst, willst du dir deutlich mehr Tipp-Arbeit machen. Anstatt der ganzen Tipparbeit, würde ich diese Zeit lieber nutzen um den Code verstehen zu lernen. Hier drei Links mit denen der Code eigendlich relativ leicht zu analysieren ist.

    msdn.microsoft.com/de-de/libra…source%28v=vs.110%29.aspx
    msdn.microsoft.com/de-de/libra…extbox%28v=vs.110%29.aspx
    msdn.microsoft.com/de-de/libra…mbobox%28v=vs.110%29.aspx
    @brembo00:

    Mach Dir mal keinen Stress :) Ist doch Deine Entscheidung, mir ist das ziemlich egal. Ich hab Dir nur Hilfe angeboten. Wenn es atm. noch zuviel ist, um es richtig zu verstehen, dann behalte es wenigstens im Hinterkopf für später. Ich bin auf keinen Fall böse oder sonst was. So, genug OT.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o

    brembo00 schrieb:

    If Auswahl = "AA" Then TextBox1.Text = ("3") & TextBox2.Text = ("449")

    Mal unabhängig von der Alternativlösung. Das was du hier versuchst ist mehrere Befehle zu einem zu verschmelzen unter Verwendung einer falschen und dafür nicht vorgesehenen Syntax.
    Das &-Zeichen dient nicht dazu zu sagen: Tu dies und tu das. Das Zuweisen von "3" zu TextBox1.Text und "449" zu TextBox2.Text sind zwei voneinander unabhängige Befehle, die du auch entsprechend implementieren musst.
    Wenn dir das aufdröseln auf mehrere Zeilen in einem IF-Block zu platzfressend ist

    VB.NET-Quellcode

    1. If Auswahl = "AA" Then
    2. TextBox1.Text = "3"
    3. TextBox2.Text = "449"
    4. End If

    ...dann hast du eine Chance das in eine Zeile zu schreiben, indem du den ":" benutzt:

    VB.NET-Quellcode

    1. If Auswahl = "AA" Then TextBox1.Text = "3": TextBox2.Text = "449"

    Ich denke, das ist das, was du eigentlich wolltest.

    ABER angesichts dessen, dass du hier Abfragen in zweistelliger Menge durchführen willst, solltest du dich doch lieber etwas intensiver mit den Vorschlägen meiner Vorredner auseinandersetzen und eine andere Strategie als deine ursprünglich angestrebte wählen...
    Weltherrschaft erlangen: 1%
    Ist dein Problem erledigt? -> Dann markiere das Thema bitte entsprechend.
    Waren Beiträge dieser Diskussion dabei hilfreich? -> Dann klick dort jeweils auf den Hilfreich-Button.
    Danke.

    brembo00 schrieb:

    Genau so wolte ich das :)
    Viele Befehle in eine Codezeile zuschreiben ist nicht besonders elegant, außerdem ist das schwer zu lesen, insbesondere, wenn die Zeilen länger werden. Mach es ordentlich mit Block-Syntax:

    VB.NET-Quellcode

    1. If Auswahl = "AA" Then
    2. TextBox1.Text = "3"
    3. TextBox2.Text = "449"
    4. End If
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    brembo00 schrieb:

    mit dem umständlichen
    Wo genau liegt das Problem?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!