Eine Combobox füllt mehrere Textboxen mit unterschiedlichen Daten

  • VB.NET

Es gibt 31 Antworten in diesem Thema. Der letzte Beitrag () ist von tuvok.

    Eine Combobox füllt mehrere Textboxen mit unterschiedlichen Daten

    Hallo,
    ich habe eine Combobox, die wird mit Namen aus einer Access DB gefüllt.

    Jetzt habe ich ca 40 Textboxen die mit den Unterschiedlichen Namen der Combobox gefüllt werden sollen..
    ist es irgendwie möglich, den Namen in der Combobox auszuwählen und dann irgendwie mit einem Click oder mit einem Doppelklick
    den Namen in die Textbox zu holen irgendwie?

    Habe da noch keine Lösung gefunden.. wäre Dankbar dafür

    m9898 schrieb:

    Oder habe ich das jetzt falsch verstanden?
    Geht mir auch so. :S
    @tuvok: Kannst Du das vielleicht bildlich darstellen (vorher - nachher) :?:
    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!
    Dein Problem ist für mich immer noch nicht nachvollziehbar.
    Versuche mal, es in 5 oder 6 Sätzen zu beschreiben, vielleicht kommst Du dann schon selbst zu einer Lösung.
    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!

    tuvok schrieb:

    das ist erstmal alles

    VB.NET-Quellcode

    1. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    2. TextBox1.Text = ComboBox1.SelectedItem.ToString
    3. End Sub
    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!
    hmja.. so hatte ich es auch schon .. das Prob ist.. wie kann ich den Namen den ich in der Combobox ausgewählt habe Variabel in irgend eine der Textboxen bringen? so wie es jetzt im Code ist,
    wird es ja nur an die Textbox1 übertragen ..

    man müsste es evtl. so machen, dass der Text, der in der Combobox ausgewählt wurde in ein String gespeichert wird und wenn man bei der Textbox doppelklick drauf macht,
    dass er dann den Inhalt des Strings einfügt und den String wieder leer macht..


    so ginge es evtl.

    VB.NET-Quellcode

    1. Private Sub TextBox12_DoubleClick(sender As Object, e As System.EventArgs) Handles TextBox12.DoubleClick
    2. TextBox12.Text = ComboBox1.SelectedItem.ToString()
    3. End Sub


    nur dann müsste ich das bei allen 38 Textboxen einzeln als Code machen ..
    ne ne .. Du hast mich da falsch verstanden ..
    ich möchte, wenn schon Text vorhanden ist diesen mit einem Doppelklick löschen...
    ich meinte das so :)

    VB.NET-Quellcode

    1. If TextBox20.Text = Nothing Then
    2. TextBox20.Text = ComboBox1.SelectedItem.ToString()
    3. Else
    4. Text = True
    5. TextBox20.Clear()
    6. End If
    lach.. ne hab ich nich.. haste meinen Code mal ausgetestet?
    bzw nachvollzogen was der macht?
    Der leert die Textbox wenn was drin steht, un wenn nix drin steht schreibt er das selektierte element aus der Combobox rein... das wars doch was du wolltest
    Wobei das clear natürlich schöner is.. aber auch nur das :P
    ja ne .. es kann auch mal sein, dass mal kein text drin steht .. deswegen konnte ich deinen Code nicht nutzen.. ansonsten wäre das OK
    weil ich möchte ja nicht immer wenn was drin steht auch gleich wieder was neues drin stehn haben..


    ist für nen Einteilungsplan :) evtl. kannst es jetzt nachvollziehen warum ich das so gemacht habe.. :)
    Ich muss ja gerade feststellen bei 100 Textboxen ...
    immer den selbigen Code auszuführen ist natürlich recht umständlich ..

    wenn diese am Ende alle so aussehen sollen

    VB.NET-Quellcode

    1. Private Sub TextBox23_DoubleClick(sender As System.Object, e As System.EventArgs) Handles TextBox23.DoubleClick
    2. If TextBox24.Text = Nothing Then
    3. TextBox24.Text = ComboBox1.SelectedItem.ToString()
    4. Else
    5. Text = True
    6. TextBox24.Clear()
    7. End If
    8. My.Settings.text6 = TextBox23.Text
    9. My.Settings.Save()
    10. End Sub


    vereinfachen kann man das nicht wirklich oder?
    Hallo,

    wie du die leeren Textboxen ausfüllen kannst, geht so:

    VB.NET-Quellcode

    1. For Each c As Textbox In Controls.OfType(Of TextBox)
    2. If c.Text = Nothing Then
    3. c.Text = ComboBox1.Text
    4. End If
    5. Next


    Das mit dem Doppelclick musst du selber lösen. :D

    MFG

    Alex-Digital :D
    @Alex-Digital:
    Das ist nicht das was er will, es sollen nicht alle Textboxen gefüllt werden sondern alle Textbixen das gleiche event haben
    @Tuvok:
    schau dir mal Addhandler an
    msdn.microsoft.com/query/dev10…22);k(DevLang-VB)&rd=true
    und dann im Form_load sowas
    Spoiler anzeigen

    VB.NET-Quellcode

    1. form_load
    2. for each crt in me.controls.oftype(of textbox)
    3. addhandler crt.double_click, adressof txt_click
    4. next
    5. end
    6. private txt_click (byval....)
    7. if string.isnullorempty(textbox.text) then
    8. text = selecteditem
    9. else
    10. textbox.clear
    11. endif
    12. end

    Das is nur ne grobe Richtung... is kla, ne... ;)

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

    Danke
    ich habe es mal versucht auf meine Weise zu machen

    VB.NET-Quellcode

    1. Private Sub TextBox18_DoubleClick(sender As Object, e As System.EventArgs) Handles TextBox18.DoubleClick, TextBox19.DoubleClick, TextBox20.DoubleClick, TextBox21.DoubleClick,
    2. TextBox22.DoubleClick, TextBox23.DoubleClick, TextBox24.DoubleClick, TextBox25.DoubleClick, TextBox26.DoubleClick, TextBox27.DoubleClick, TextBox28.DoubleClick, TextBox29.DoubleClick,
    3. TextBox30.DoubleClick, TextBox31.DoubleClick, TextBox32.DoubleClick, TextBox33.DoubleClick, TextBox34.DoubleClick, TextBox35.DoubleClick, TextBox36.DoubleClick,
    4. TextBox37.DoubleClick, TextBox38.DoubleClick, TextBox39.DoubleClick, TextBox40.DoubleClick, TextBox41.DoubleClick, TextBox42.DoubleClick, TextBox43.DoubleClick,
    5. TextBox44.DoubleClick, TextBox45.DoubleClick, TextBox46.DoubleClick, TextBox47.DoubleClick, TextBox48.DoubleClick, TextBox49.DoubleClick, TextBox50.DoubleClick,
    6. TextBox51.DoubleClick, TextBox52.DoubleClick, TextBox53.DoubleClick, TextBox54.DoubleClick, TextBox55.DoubleClick, TextBox56.DoubleClick, TextBox57.DoubleClick,
    7. TextBox58.DoubleClick, TextBox59.DoubleClick, TextBox60.DoubleClick, TextBox61.DoubleClick, TextBox62.DoubleClick, TextBox63.DoubleClick, TextBox64.DoubleClick,
    8. TextBox65.DoubleClick, TextBox66.DoubleClick, TextBox67.DoubleClick, TextBox68.DoubleClick, TextBox69.DoubleClick, TextBox70.DoubleClick, TextBox71.DoubleClick,
    9. TextBox72.DoubleClick, TextBox73.DoubleClick, TextBox74.DoubleClick, TextBox75.DoubleClick, TextBox76.DoubleClick, TextBox77.DoubleClick, TextBox78.DoubleClick,
    10. TextBox79.DoubleClick, TextBox80.DoubleClick, TextBox81.DoubleClick, TextBox82.DoubleClick, TextBox83.DoubleClick, TextBox84.DoubleClick, TextBox85.DoubleClick,
    11. TextBox86.DoubleClick, TextBox87.DoubleClick, TextBox88.DoubleClick, TextBox89.DoubleClick, TextBox90.DoubleClick, TextBox91.DoubleClick, TextBox92.DoubleClick,
    12. TextBox93.DoubleClick, TextBox94.DoubleClick, TextBox95.DoubleClick, TextBox96.DoubleClick, TextBox97.DoubleClick, TextBox98.DoubleClick, TextBox99.DoubleClick,
    13. TextBox100.DoubleClick, TextBox101.DoubleClick, TextBox102.DoubleClick, TextBox103.DoubleClick, TextBox104.DoubleClick, TextBox105.DoubleClick, TextBox106.DoubleClick,
    14. TextBox107.DoubleClick, TextBox108.DoubleClick, TextBox109.DoubleClick, TextBox110.DoubleClick, TextBox111.DoubleClick, TextBox112.DoubleClick, TextBox113.DoubleClick,
    15. TextBox114.DoubleClick, TextBox115.DoubleClick, TextBox116.DoubleClick, TextBox117.DoubleClick, TextBox118.DoubleClick, TextBox119.DoubleClick, TextBox120.DoubleClick,
    16. TextBox121.DoubleClick, TextBox122.DoubleClick, TextBox123.DoubleClick, TextBox124.DoubleClick, TextBox125.DoubleClick
    17. For i = 0 To My.Application.OpenForms.Count - 1
    18. Dim boxname As String
    19. If TypeOf (My.Application.OpenForms.Item(i).ActiveControl) Is TextBox Then
    20. boxname = My.Application.OpenForms.Item(i).ActiveControl.Name
    21. MsgBox(My.Application.OpenForms.Item(i).ActiveControl.Name)
    22. boxname = ComboBox1.SelectedItem.ToString()
    23. 'Else
    24. ' boxname = True
    25. ' boxname.Clear()
    26. End If
    27. Next
    28. End Sub


    aber irgendwas mag er nicht.. in der MsgBox zeigt er mir den TextBox Namen an .. aber wenn ich doppelt drauf klick füllt er das ganze nicht mit dem Combobox Item.. jemand ne Idee?

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