ComboBox leeren, Eintrag bleibt übrig, Leere Felder

  • VB.NET

Es gibt 27 Antworten in diesem Thema. Der letzte Beitrag () ist von Alex2000.

    ComboBox leeren, Eintrag bleibt übrig, Leere Felder

    Ich möchte eine ComboBox, die z.B. 10 Einträge hat, leeren. Dazu rufe ich die Methode ComboBox.Clear() auf. Das Problem ist nun, dass immer noch Text in der ComboBox angezeigt wird und zwar der Text, der zuletzt ausgewählt wurde. Ausserdem hat die ComboBox danach immer noch soviele Einträge wie vorher, nur dass jetzt kein Text mehr angezeigt wird, sondern ich einfach eine leere Liste vor mir habe.
    Kann mir jemand sagen, wie ich die ComboBox so leeren kann, dass siewie eine komplett neue ComboBox ist, also völlig ohne Einträge oder angezeigten Text?
    Hi, du meinst bestimmt Combobox1.Items.Clear()

    und wie kev schon gesagt hat, einfach nach...items.Clear() noch Combobox1.Text = "" oder es geht auch Combobox1.Text = Nothing aber ist das Selbe.

    milaim
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Ja, entschuldigung, ich meinte ComboBox.Items.Clear()
    Alex2000: Wieso soll ich eine Schleife nehmen? ComboBox.Items.Clear() löscht ja schon alle Elemente, da brauche ich keine Schleife. Ausserdem habe ich zumindest ComboBox.items.Clear schon im ersten Post erwähnt, dass das nicht funktioniert.

    dusti schrieb:

    Ja, entschuldigung, ich meinte ComboBox.Items.Clear()
    Alex2000: Wieso soll ich eine Schleife nehmen? ComboBox.Items.Clear() löscht ja schon alle Elemente, da brauche ich keine Schleife. Ausserdem habe ich zumindest ComboBox.items.Clear schon im ersten Post erwähnt, dass das nicht funktioniert.



    da muss ich aber widersprechen.

    Items.clear() funktioniert wohl.

    Mach zum test eine Textbox und gib mal ein:

    Textbox1.Text = Combobox1.Items.Count

    Dann wirst du im Verlauf sehen, dass die Items auf 0 gesetzt werden.
    //EDIT: Setz das hier mal auf FALSE, also:
    ComboBox1.IntegralHeight = False

    Das ist bestimmt das, wonach du gesucht hast.
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer

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

    du bruchst keine schleife

    so funktioniert es einwandfrei

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. ComboBox1.ResetText()
    3. ComboBox1.Items.Clear()
    4. End Sub


    GR
    Schäm dich nicht "Zu fragen", schäm dich "Nicht zu wissen". ?(
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    Ja, haben wir schon vorgeschlagen, bloss wenn man dann auf die Combobox draufklickt dann öffnet sich diese "leere" liste die genauso lang ist wie die Einträge vor dem clear() da waren.

    Mit ComboBox1.IntegralHeight = False wird auch das dann aufs minimalste zurückgezogen.
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer

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


    Ja, haben wir schon vorgeschlagen, bloss wenn man dann auf die Combobox draufklickt dann öffnet sich diese "leere" liste die genauso lang ist wie die Einträge vor dem clear() da waren.

    Mit ComboBox1.IntegralHeight = False wird auch das dann aufs minimalste zurückgezogen.


    @hallo milaim

    also bei mir ist ComboBox1.IntegralHeight = True und nach dem isch eintreage ausgewehalt hatte und mein code benutzte krieg ich keine lehre spalten also nur eine was man eigentlich erhalten sollte

    also bei mir funktioniert es weis nicht wieso ihr leere spalten kriegt

    Gr
    Schäm dich nicht "Zu fragen", schäm dich "Nicht zu wissen". ?(
    Hi, in ASP.Net hab ich das Problem nicht.. Weiss ehrlich gesagt überhaupt nicht warum das so kommt.. Mit der Methode hab ichs dann wegbekommen... Aber verstehen tu ichs nicht unbedingt.
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer

    VB.NET-Quellcode

    1. Public Class Form1
    2. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    3. Dim monatsauswahl As New ArrayList
    4. Dim z As Integer
    5. With monatsauswahl
    6. .Add("Januar")
    7. .Add("Februar")
    8. .Add("März")
    9. .Add("April")
    10. .Add("Mai")
    11. .Add("Juni")
    12. .Add("Juli")
    13. .Add("August")
    14. .Add("September")
    15. .Add("Oktober")
    16. .Add("November")
    17. .Add("Dezember")
    18. For z = 0 To .Count - 1
    19. ComboBox.Items.Add(.Item(z))
    20. Next
    21. End With
    22. End Sub
    23. 'Einträge in CoboBox löschen
    24. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    25. ComboBox.Items.Clear()
    26. MsgBox(ComboBox.Items.Count)
    27. End Sub
    28. End Class



    hab die Code getestet ! Die Einträge werden in ComboBox gelöscht und in MsgBox wird der Anzahl die Einträgen "0" angezeigt !
    Bei mir funz alles ! :thumbup:
    Ich glaub du verstehst grad das Problem von dem nicht!

    Seine Lösung hat auch funktioniert aber das Problem war: Wenn er nach , die Betoung liegt auf 'nach', dem löschen auf die Combobox klickt, dann öffnet sich ja (so kennt man ja die Combobox) eine Liste. Und die Liste, als er danach draufgeklickt hat, war genauso lang, wie es davor mit den Einträgen dort war.. Soll nicht heissen, dass die Einträge immernoch da sind.

    Allein das war sein Problem, warum er gesagt hat, es funktioniert nicht.
    "Wenn jemand in einem Betrieb unverzichtbar ist, dann ist dieser Betrieb falsch organisiert." - Roberto Niederer
    Vollzitat des direkten Vorposts an dieser Stelle entfernt ~VaporiZed

    lol? Was ich für ein Problem hatte kannst du im ersten Post lesen. Und danke für den Hinweis, dass wenn ich alles richtig mache, auch alles funktioniert, da wäre ich nicht drauf gekommen :huh:

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

    Wie ichs gelöst habe steht oben.
    das kommt mir schon komisch vor, mit "Clear" Methode werden die Einträge nicht gelöscht

    Zitat aus dem MSDN zu ComboBox.ObjectCollection.Clear-Methode :
    Entfernt alle Elemente aus ComboBox.

    Was mich etwas verwirrt ist, dass in der ComboBox.ObjectCollection-Klasse steht "Die Clear-Methode entfernt alle Elemente aus der Auflistung." in der ComboBox.ObjectCollection.Clear-Methode steht dann aber "Diese Methode unterstützt die .NET Framework-Infrastruktur und ist nicht für die direkte Verwendung in Code bestimmt." Aber egal, es funktioniert ja.
    oder was auch immer bei dir nicht klappt

    nochmal, was nicht klappt, kannst du in meinem ersten Post lesen. Aber ich habe das Problem eigentlich schon lange gelöst.
    Ich verstehe absolut nicht, wieso du so scharf auf Code bist, das Problem ist schon lange gelöst (was ich jetzt zum 3. Mal schreibe). Es gibt also gar nichts zu diskutieren oder zu kontrollieren obs stimmt oder nicht. Alles läuft und ist gut. Um das festzustellen brauche ich dir keinen Code zu geben.

    Edit: Den einzigen Code den ich dir geben könnte wäre:

    VB.NET-Quellcode

    1. Me.ComboBox_Loops.Items.Clear()
    2. Me.ComboBox_Loops.Text = ""