Combobox erster Index immer leer

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 4 Antworten in diesem Thema. Der letzte Beitrag () ist von Kevin12345.

    Combobox erster Index immer leer

    Hallo Community,


    ich habe eine Combobox aus einer SQL - Datenbank gefüllt. Ist es möglich den ersten Eintrag dauerhaft leer zu lassen?

    VB.NET-Quellcode

    1. Function befuellen_filter()
    2. cmd.CommandText = "SELECT id, name FROM Indikation ORDER BY name"
    3. Try
    4. con.Open()
    5. adapter = New MySqlDataAdapter(cmd.CommandText, con)
    6. table = New Data.DataTable
    7. adapter.Fill(table)
    8. frm_basis.cbx_indi.DataSource = table
    9. frm_basis.cbx_indi.DisplayMember = "name"
    10. frm_basis.cbx_indi.ValueMember = "id"
    11. frm_basis.cbx_indi.SelectedIndex = -1
    12. Catch ex As Exception
    13. MessageBox.Show("Comboboxen füllen: " & ex.Message)
    14. End Try
    15. End Function


    Mit "frm_basis.cbx_indi.SelectedIndex = -1" wird der erste Eintrag zwar leer gelassen. Aber wenn man etwas auswählt,gibt es diesen leeren Eintrag nicht mehr. Hab jetzt leider keine Idee wie ich das machen soll....

    MfG
    nein, da gibts streng genommen nichts.
    Wenn du die Combo betätigst, wählst du aus - nicht-auswählen geht nicht.
    Man muss sich stattdessen einen Dummi-Datensatz creieren, der "Nichts Auswählen" bedeutet.
    Aber zuvor würde ich dir überhaupt empfehlen, den Umgang mit Datensätzen und insbesondere Databinding zu erlernen.
    "Combobox aus Datenbank befüllen" ist ein denkbar schlechter Ansatz - in einer Datenverarbeitung sollte man immer ein Datenmodell erstellen, und daran binden.
    (Kann sein, dass "Datenmodell erstellen, und daran binden" dir ühaupt nichts sagt - nichtsdestoTrotz ist das dringendst empfohlen, und ist letztendlich einfacher, es zu erlernen, als es aus Unkenntnis ohne zu versuchen.)

    Datenverarbeitungs-Vorraussetzungen (folge dem Link)

    Kevin12345 schrieb:

    gibt es diesen leeren Eintrag nicht mehr
    Du kannst ihn Dir wieder erzeugen, indem Du

    VB.NET-Quellcode

    1. frm_basis.cbx_indi.SelectedIndex = -1
    aufrufst.
    ======
    Probiere mal dies:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    2. Me.ComboBox1.Items.Clear()
    3. Dim content() = {"11", "22", "33"}
    4. Me.ComboBox1.DataSource = content
    5. End Sub
    6. Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    7. Me.ComboBox1.SelectedIndex = -1
    8. 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!