ComboBox

  • VB.NET

Es gibt 8 Antworten in diesem Thema. Der letzte Beitrag () ist von vanitas-mundi.

    Hallo!

    Habe einmal etwas gebastelt:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load _
    3. (ByVal sender As Object _
    4. , ByVal e As System.EventArgs) _
    5. Handles Me.Load
    6. ComboBox1.Items.Add(New ComboItem("Drucker", "Spooler"))
    7. ComboBox1.Items.Add(New ComboItem("Test1", "Test1Value"))
    8. ComboBox1.Items.Add(New ComboItem("Test2", "Test2Value"))
    9. End Sub
    10. Private Sub ComboBox1_SelectedIndexChanged _
    11. (ByVal sender As System.Object _
    12. , ByVal e As System.EventArgs) _
    13. Handles ComboBox1.SelectedIndexChanged
    14. If ComboBox1.SelectedItem Is Nothing Then Exit Sub
    15. Dim item As ComboItem = DirectCast(ComboBox1.SelectedItem, ComboItem)
    16. MsgBox(item.DisplayText & ":" & item.Value)
    17. End Sub
    18. End Class
    19. Public Class ComboItem
    20. Private _DisplayText As String
    21. Private _Value As String
    22. Public ReadOnly Property DisplayText() As String
    23. Get
    24. Return _DisplayText
    25. End Get
    26. End Property
    27. Public ReadOnly Property Value() As String
    28. Get
    29. Return _Value
    30. End Get
    31. End Property
    32. Public Sub New(ByVal displayText As String, ByVal value As String)
    33. _DisplayText = displayText
    34. _Value = value
    35. End Sub
    36. Public Overrides Function ToString() As String
    37. Return _DisplayText
    38. End Function
    39. End Class
    Thx für die schnelle Antwort,

    was ich genau machen will ist, dass ich aus einer ComboBox auswähle welche Dienste auf einen PC/Server restarte werden soll.

    Das Problem dabei ist das gewisse Dienstnamen sehr lange sind, das wenn ich z.B Drucker auswähle meinem Programm Spooler ausgegeben wird, damit der Richtige Dienst gestoppt und gestartet wird.

    Mit dem Code hab ich jetzt das Problem, das wenn ich diese Zeile eingebe.

    VB.NET-Quellcode

    1. ComboBox1.Items.Add(New ComboItem("Drucker", "Spooler"))


    ich den Fehler bekomme: Der Typ "ComboItem" ist nicht definiert.
    Funktioniert super, danke für die schnell Hilfe.

    Nur kann mir vielleicht jemand den Unterenteil des Codes etwas näher erklären? ?(

    VB.NET-Quellcode

    1. Public Class ComboItem
    2. Private _DisplayText As String
    3. Private _Value As String
    4. Public ReadOnly Property DisplayText() As String
    5. Get
    6. Return _DisplayText
    7. End Get
    8. End Property
    9. Public ReadOnly Property Value() As String
    10. Get
    11. Return _Value
    12. End Get
    13. End Property
    14. Public Sub New(ByVal displayText As String, ByVal value As String)
    15. _DisplayText = displayText
    16. _Value = value
    17. End Sub
    18. Public Overrides Function ToString() As String
    19. Return _DisplayText
    20. End Function
    21. End Class
    warum die Namen Variable mit diesem code geändert werden.

    VB.NET-Quellcode

    1. Public Sub New(ByVal displayText As String, ByVal value As String)
    2. _DisplayText = displayText
    3. _Value = value
    4. End Sub


    PS. ich muss dazu sagen das ich noch ziemlich ein Neuling bin was VB Programmierung betrifft!
    Nunja,

    viele Wege führen nach Rom ... :)

    Die von dir gezeigte Sub ist der Konstruktor und ich fande es halt
    praktisch die Werte deiner Properties bei der Objektinstanzierung zu setzen.
    Alternativ könnte man natürlich auch aus den Readonly Properties Properties
    mit Vollzugriff gestalten, die nach Instanzierung die Möglichkeit böten,
    die Werte über die Property zu setzen.