Combobox Inhalt und Variablen aus Modul laden?!

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von kai996.

    Combobox Inhalt und Variablen aus Modul laden?!

    Hallo VB Freunde,

    ich hoffe ihr könnt mir weiterhelfen.

    Ich habe in meinem Programm mehrere Formen mit jeweils einer Combobox.
    Nun möchte ich gerne das der Inhalt zentral aus einem Modul kommt, sobald man einen Eintrag ausgewählt hat, soll dieser als "Public Variable" zur verfügung stehen.

    z.B. "COMBOBOX" -> "Auswahl: Stahl" -> "= Public Wert 7.85"

    Nur wie realisiere ich dass? durch Suchen habe ich herausgefunden wie man per Array Daten in eine Combobox holt, aber ich weiß leider nicht wie ich an die Werte komme... könnt ihr helfen?

    VB.NET-Quellcode

    1. Public material As New List(Of String) From {"Stahl", "Alu", "GG"}
    2. Public Function GetValue(ByVal variableName As String) As Object
    3. Dim returnValue As Object
    4. Select Case variableName
    5. Case "Stahl" : returnValue = 7.85
    6. Case "Alu" : returnValue = 2.5
    7. Case "GG" : returnValue = 4.5
    8. End Select
    9. GetValue = returnValue
    10. End Function
    Willkommen im Forum. :thumbup:
    Suchst Du ein Dictionary(Of String, Double), wo Du Deine Legierungen und Dichten gepaart ablegen kannst?
    Suche Dictionary.
    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!
    Super, genau das habe ich gesucht. Danke!
    Nur wie fülle ich jetzt den Inhalt in die Combobox?
    :thumbsup:

    VB.NET-Quellcode

    1. Dim material As New Dictionary(Of String, Double)
    2. With material
    3. .Add("Stahl", 7.58)
    4. .Add("Test1", 2.5)
    5. .Add("Test2", 6.84)
    6. .Add("Test3", 7.99)
    7. End With
    @medirar

    VB.NET-Quellcode

    1. Option Strict On
    2. Public Class Form1
    3. Dim material As New Dictionary(Of String, Double)
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. With material
    6. .Add("Stahl", 7.58)
    7. .Add("Test1", 2.5)
    8. End With
    9. 'Inhalt füllen
    10. For Each m In material
    11. ComboBox1.Items.Add(m)
    12. Next
    13. 'Variable abrufen
    14. Dim i As String = CStr(material("Stahl"))
    15. MessageBox.Show(i)
    16. End Sub
    17. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    18. Dim kvp As KeyValuePair(Of String, Double)
    19. kvp = CType(ComboBox1.SelectedItem, Global.System.Collections.Generic.KeyValuePair(Of String, Double))
    20. MessageBox.Show(CStr(kvp.Value))
    21. End Sub
    22. End Class


    Hier mal ein Beispiel. Wichtig ist der Teil im SelectedIndexChanged.
    Und guck mal hier

    medirar schrieb:

    Ich versuche es jetzt in ein Modul zu packen.
    Lieber nicht.
    Moduls sind ein Relikt aus der BV6-Zei und haben unter VB.NET nur noch eine Berechtigung für Befehlserweiterungen.
    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!
    jetzt habe ich doch noch eine Frage:

    VB.NET-Quellcode

    1. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    2. Dim kvp As KeyValuePair(Of String, Double)
    3. kvp = CType(ComboBox1.SelectedItem, Global.System.Collections.Generic.KeyValuePair(Of String, Double))
    4. MessageBox.Show(CStr(kvp.Value))
    5. End Sub


    Wie bekomme ich den "kvp.Value" public in eine variable? :?:
    @medirar: So:

    VB.NET-Quellcode

    1. Private Value As Double
    2. Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
    3. Dim kvp As KeyValuePair(Of String, Double)
    4. kvp = CType(ComboBox1.SelectedItem, Global.System.Collections.Generic.KeyValuePair(Of String, Double))
    5. Value = kvp.Value
    6. 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!