ComboBox (DropDownList) - Beim einfügen des Textes, Information entfernen.

  • VB.NET

Es gibt 19 Antworten in diesem Thema. Der letzte Beitrag () ist von ErfinderDesRades.

    ComboBox (DropDownList) - Beim einfügen des Textes, Information entfernen.

    Hallo

    Ich habe eine ComboBox die in den Eigenschaften bei "DropDownStyle" auf "DropDownList" steht, und ich habe im "SelectedIndexChanged"-Event geschrieben, das der ausgewählte Befehl in eine Textbox geschrieben werden soll:

    VB.NET-Quellcode

    1. Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
    2. If Me.ComboBox1.Text = "" Then
    3. Else
    4. If Me.TextBox5.Text = "" Then
    5. Me.TextBox5.Text = CStr(Me.ComboBox1.SelectedItem)
    6. Else
    7. Me.TextBox5.AppendText(vbNewLine & CStr(Me.ComboBox1.SelectedItem))
    8. End If
    9. Me.TextBox5.Focus()
    10. End If
    11. End Sub


    Also ich drücke auf das Item: "Set_out_Ui (Boolean)" und es soll in die Textbox nur "Set_out_Ui" geschrieben werden ohne "(Boolean)" da dass nur zur Information da ist und einen sagen soll um was es sich handelt. Wie kann man sowas bewerkstelligen :)
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Ich würde es jetzt mit einer eigenen ComboItem Klasse lösen welche 2 Properties hat. Eine für den Text in der Combo und die andere den Originaltext.
    Dann würd ich eine List(Of ComboItem) machen und die einzelnen Items hinzufügen. Diese bindest du dann per ComboBox.DataSource an die Combobox.
    Per ComboBox.DisplayMember gibst du ihm die Eigenschaft welche in der Combobox aufscheinen soll und per ComboBox.ValueMember den Wert der dahintersteht.

    Somit kannst du es im SelectedIndexChaged-Event der Combobox das SelectedItem in ein ComboItem casten und auf den Originalnamen zugreifen.

    lg
    ScheduleLib 0.0.1.0
    Kleine Lib zum Anlaufen von Code zu bestimmten Zeiten
    Hallo,

    ich würde es so lösen (nach fichz Vorschlag):

    ComboItem-Klasse:

    VB.NET-Quellcode

    1. Public Class ComboItem
    2. Private _displaytext As String
    3. Private _valuetext As String
    4. Public Property DisplayText As String
    5. Get
    6. Return _displaytext
    7. Set(ByVal value As String)
    8. _displaytext = value
    9. End Property
    10. Public Property Value As String
    11. Get
    12. Return _valuetext
    13. Set(ByVal value As String)
    14. _valuetext = value
    15. End Property
    16. End Class


    Items hinzufügen:

    VB.NET-Quellcode

    1. Dim items As New List(Of ComboItem)
    2. items.add(New ComboItem() With {.DisplayText = "Hi", .Value = "Hallo"})
    3. items.add(New ComboItem() With {.DisplayText = "VB", .Value = "Visual Basic"})


    Items an Combobox binden:

    VB.NET-Quellcode

    1. 'Combobox1 = Deine Combobox
    2. Combobox1.DataSource = items
    3. Combobox1.DisplayMember = "DisplayText"
    4. Combobox1.ValueMember = "Value"


    #nicht getestet

    Sollte so funktionieren, bin mir bei DisplayMember und ValueMember nicht sicher.

    Hoffe, ich konnte dir helfen :)

    MFG

    Alex-Digital :D
    ~ Alex-Digital :D

    if(!Internet.VBP.Get<User>("Alex-Digital").IsOnline) this.Close(); :D
    Danke erstmal, aber mit dem Code stimmt etwas nicht.

    Er zeigt mir haufenweise Fehler, auch beim versuch sie zu beheben, kommen einfach nur mehr dazu.
    (Mit nur Copy & Past)

    1). Eine Eigenschaft ohne einen ReadOnly- oder WriteOnly-Spezifizierer muss ein "Get" und ein "Set" bereitstellen.

    2). Eine Anweisung kann nicht innerhalb eines Methodentexts verwendet werden. Das Methodenende wird angenommen.

    3). Eine Anweisung kann nicht innerhalb eines Eigenschaftentexts verwendet werden. Das Ende der Eigenschaft wird angenommen.

    4). Eigenschaft ohne "End Property".

    5). Eine Anweisung kann nicht innerhalb eines Methodentexts verwendet werden. Das Methodenende wird angenommen.

    mediafire.com/convkey/9d61/nw837g3swh80haxfg.jpg?size_id=8
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    So .. :

    VB.NET-Quellcode

    1. Public Class ComboBoxItems
    2. Private _displaytext As String
    3. Private _valuetext As String
    4. Public Property DisplayText As String
    5. Get
    6. Return _displaytext
    7. Set(ByVal value As String)
    8. _displaytext = value
    9. End Property
    10. Public Property Value As String
    11. Get
    12. Return _valuetext
    13. Set(ByVal value As String)
    14. _valuetext = value
    15. End Set
    16. end get
    17. End Property
    18. End Class


    oder so ...

    VB.NET-Quellcode

    1. Public Class ComboBoxItems
    2. Private _displaytext As String
    3. Private _valuetext As String
    4. Public Property DisplayText As String
    5. Get
    6. Return _displaytext
    7. Set(ByVal value As String)
    8. _displaytext = value
    9. End Set
    10. End Property
    11. Public Property Value As String
    12. Get
    13. Return _valuetext
    14. Set(ByVal value As String)
    15. _valuetext = value
    16. End Set 'Eigentlich End Get, aber das ändert er automatisch in End Set ..
    17. End Property
    18. End Set
    19. End Class


    Egal wo ich das End Set hinsetze (oder End Get), es bleibt immer das gleiche.
    "Denken ist die schwerste Arbeit, die es gibt. Das ist wahrscheinlich auch der Grund, warum sich so wenig Leute damit beschäftigen." - Henry Ford
    Hey,

    1. Erstelle Dir eine Klasse, die Deine Werte kapselt.
    2. Füge Deinem Projekt diese Klasse als Datenquelle hinzu.
    3. Füge Deinem Projekt eine BindingSource hinzu und lege die vorher hinzugefügte Datenquelle als DataSource fest.
    4. Binde die ComboBox an die BindingSource und wähle den gewünschten DisplayMember aus.
    5. siehe 4. nur eben mit der TextBox.
    6. Done.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o
    Wenn Du das nicht selber lösen kannst, dann fehlt es massiv an Grundlagen.

    microsoft.com/germany/msdn/akt…005DasEntwicklerbuch.aspx

    Ist nicht bös gemeint, sondern Tatsache.
    Die Unendlichkeit ist weit. Vor allem gegen Ende. ?(
    Manche Menschen sind gar nicht dumm. Sie haben nur Pech beim Denken. 8o