gebundene Combobox und Item zufügen

  • VB.NET

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von mrMo.

    gebundene Combobox und Item zufügen

    Hallo
    ich habe eine Combobox die ihre Daten aus einer Bindingsourse erhält. Nun möchte ich noch ein -Bitte wählen- dieser Combobox hinzufügen.
    Wie geht so etwas?

    Vielen Dank für eure Unterstüzung.

    Gruß Norbert
    CCU2 • Raspberry für Wetterstation • ioBroker • HP ProLiant MicroServer Gen8 12GB 2x3TB Server 2012 R2 • PHP • MYSQL • VB.NET (Anfänger)
    Hey, :)

    Ich habe das Folgend geloest:
    Fuege ein Item "-Bitte wählen-" nach ganz oben in deiner Item Liste,

    Dann setze ich das Ganze Als "Selected" (Folgenden Code habe ich in der Form_Load)

    VB.NET-Quellcode

    1. Combobox.SelectedIndex = Combobox.FindStringExact("-Bitte wählen-")


    Jetzt habe ich zb. noch hinzugefuegt dass wenn etwas anderes Ausgewaehlt wird, dass das Item -Bitte wählen- entfernt wird

    Item Entfernen

    VB.NET-Quellcode

    1. Private Sub Combobox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles Combobox.SelectedIndexChanged
    2. If Combobox.SelectedItem.ToString = "Data" Then ' Data steht hierbei fuer das Item, was ausgewaehlt werden 'muss damit das item "-Bitte wählen-" entfernt wird.
    3. Combobox.Items.Remove("-Bitte wählen-")
    4. End If
    5. End Sub



    Ich weiss das ist zwar wahrscheinlich nicht die Beste Loesung, aber das Funktioniert Bei mir Fehlerfrei und Sauber.

    lg
    Begeisterter BF4 Spieler :D
    Hallo Gangsterkrafter

    vielen Dank für deine Antwort.

    Aber wie füge ich -Bitte wählen- in die Item Liste? Ich bekomme immer die Fehlermeldung das es nicht geht da die Combobox an ein Datasourse gebunden ist.
    CCU2 • Raspberry für Wetterstation • ioBroker • HP ProLiant MicroServer Gen8 12GB 2x3TB Server 2012 R2 • PHP • MYSQL • VB.NET (Anfänger)
    Probier mal Ganz am Anfang, bevor ueberhaupt die Daten im DataSource geladen werden zuerst das Item
    dem DataSource hinzuzufuegen und dann erst die Daten hinein Laden zu lassen.

    Ansonsten kann ich nicht viel Helfen, weil ich mich mit DataSources nicht so gut Auskenne, habe fuer den Code da oben Auch keine Genutzt, weil meine Items Sich nicht Aendern, und deine (Das glaube ich zumindest was du tust) Laedt sich die DataSource die Items von deiner Quelle und packt sie in die Combobox.

    Aber nur um das jetzt nochmal Ganz Klar zu haben,
    Du kannst -Bitte wählen- (In Meinem Fall Select Platform) Nicht hier Rein Packen?



    lg
    Begeisterter BF4 Spieler :D

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von „Gangsterkrafter“ ()

    Vielen Dank für die Unterstützung.

    Die Daten kommen aus einer mysql Datenbank (hätte ich schon eher sagen sollen)
    Das würde heissen ich muss das -Bitte wählen- dann in die Datenbank setzen.

    Gibt es da keine andere Lösung oder verstehe ich da was nicht.
    CCU2 • Raspberry für Wetterstation • ioBroker • HP ProLiant MicroServer Gen8 12GB 2x3TB Server 2012 R2 • PHP • MYSQL • VB.NET (Anfänger)

    nobse schrieb:

    Gibt es da keine andere Lösung oder verstehe ich da was nicht.
    Nein, eigentlich gibts da keine Lösung.
    Bei einer gebundenen Combobox ist immer irgendein Datensatz angewählt, es sei denn, es sind gar keine Daten da.
    Der Zustand "nichts ist angewählt, bitte wählen Sie was aus" ist überhaupt nicht vorgesehen.
    Der normale Behelf ist, einen Dummi-Datensatz zuzufügen, was halt ein regulärer Datensatz ist, der aber bedeutet, dass nichts ausgewählt ist.

    Ist umständlich, zum Teil sogar richtig schwierig zu coden, denn beim Abspeichern will man den Dummi ja nicht an die Db schicken.
    Aber beim neu befüllen soll der Dummi wieder da sein - solche Detail-Probleme zu lösen machen dieses Thema recht unerfreulich.

    Meine Empfehlung: Lebe einfach damit, dass bei einer datengebundenen Combo immer irgendein Datensatz ausgewählt ist - hast du keine vorrangigeren Probleme zu lösen als "NichtWahl-fähige" Comboboxen?
    Die Daten werden per SELECT aus der DB in den TabellenAdapter gelsen

    SQL-Abfrage

    1. SELECT `markt_id`, `bezeichnung` FROM `markt`


    Dann bei der Combobox unter Eigenschaften
    DATASOURCE den TabellenAdapter ausgewählt
    DisplayMember und ValueMember die entsprechenden Felder ausgewählt.

    @ErfinderDesRades
    Vielen Dank für die klare Aussage. Muss ich mir halt was einfallen lassen.
    Natürlich habe ich auch andere Probleme die es zu lösen gibt. Aber Optisch ist das mit den Comboboxen kein schöner Anblick wenn jemand Daten erfassen soll und dort schon Comboboxen vor selectiert sind.

    Vilen Dank an alle und noch ein schönes WE
    CCU2 • Raspberry für Wetterstation • ioBroker • HP ProLiant MicroServer Gen8 12GB 2x3TB Server 2012 R2 • PHP • MYSQL • VB.NET (Anfänger)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „nobse“ ()

    So habe jetzt für mich eine Lösung gefunden.

    Eventuell kann es ja jemand gebrauchen. Geht aber nur wenn man Daten aus einer mysql Datenbank verwendet.

    Ich habe das Select im Tabellenadaper wie folgt abgeändert

    SQL-Abfrage

    1. SELECT `markt_id`, `bezeichnung` FROM `markt`
    2. UNION
    3. SELECT 0, 'Bitte wählen' order by markt_id


    Gruß Norbert
    CCU2 • Raspberry für Wetterstation • ioBroker • HP ProLiant MicroServer Gen8 12GB 2x3TB Server 2012 R2 • PHP • MYSQL • VB.NET (Anfänger)
    Ich habe dir dazu ein kleines Projekt hoch geladen.
    Da kannst du über ein Dataset die Item-Erweiterung der gebundenen Combobox abwickeln.
    Da brauchst du nicht gleich auf die DB zugreifen.
    Ich hoffe, dass du das so gemeint hast...
    Dateien
    Hallo VB1963

    vielen Dank fpr deine Bemühungen.

    Aber auch das geht nicht. Das System erkennt das die Daten an eine Datenbank gebunden sind und läst somit keine nachträgliche manipulation zu.

    Gruß Norbert
    CCU2 • Raspberry für Wetterstation • ioBroker • HP ProLiant MicroServer Gen8 12GB 2x3TB Server 2012 R2 • PHP • MYSQL • VB.NET (Anfänger)
    Moin zusammen,

    ich mag mich evtl. täuschen, ist ja noch früh am Morgen.

    Wenn ich nicht möchte das in der ComboBox(hier cmbBox) etwas vorausgewählt ist, setzte ich den Index selbiger auf -1 und fertig.

    cmbBox.SelectedIndex = -1

    Wenn ich ein "dummy item" in die ComboBox setzen möchte, füge ich diesen der Datenquelle(ListOf, DataTable, o.Ä.) der DataSource hinzu. Da muss ich nicht am SQL-Statement oder an der DB rumdoktorn, da gehört sowas meines erachtens auch nicht hin.

    Grüße und euch einen schönen Tag
    "Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben."

    Wie debugge ich richtig? => Debuggen, Fehler finden und beseitigen
    Wie man VisualStudio nutzt? => VisualStudio richtig nutzen