Comboboxitem löschen und in my.Setting speichern

  • VB.NET

Es gibt 15 Antworten in diesem Thema. Der letzte Beitrag () ist von Zippozzi.

    Comboboxitem löschen und in my.Setting speichern

    Hallo,
    Bin neu hier, und hoffe das Thema ist hier richtig.
    Aus langerweile habe ich angefangen einen Webbrowser mit VB zu programmieren [schon wieder so ein T r :whistling: ttel].
    Nun wollte ich eine lesezeichen funktion einbauen, in einem Menustrip kann man auf Lesezeichen hinzufügen klicken
    dann öffnet sich eine neue Form in der man die url eingeben kann ein klick auf den Ok nimmt das Lesezeichen in den menustrip auf.

    Hier der Code beim klicken des Okay Buttons:

    Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. My.Settings.Bookmark.Add(TextBox2.Text)
    3. Form1.Favs.DropDownItems.Add(TextBox2.Text)
    4. My.Settings.Save()
    5. Me.Close()
    6. End Sub


    Das klappt auch wunderbar, allerdings soll man die Lesezeichen auch löschen können auch dafür gibt es einen Button der eine neue Form öffnet in der eine Combobox vorhanden ist. In der Combobox soll man ein Lesezeichen auswählen können und dann mit einem klick auf Löschen, löschen können. Die Combobox zeigt die Lesezeichen an, und wenn man auf löschen geht verschwinden sie aus der Liste der Combobox, aber im Lesezeichenmenü sind sie immer noch!
    Hier mein Code:

    Quellcode

    1. Private Sub lese_remove_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. For Each item As String In My.Settings.Bookmark
    3. ComboBox1.Items.Add(item)
    4. Next
    5. End Sub
    6. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    7. ComboBox1.Items.Remove(ComboBox1.SelectedItem)
    8. My.Settings.Bookmark.Add(ComboBox1.Text)
    9. Form1.Favs.DropDownItems.Add(ComboBox1.Text)
    10. My.Settings.Save()
    11. End Sub


    Kann jemand mir helfen? ;(
    jetzt habe ich gmeacht:

    Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. My.Settings.Bookmark = Nothing
    3. My.Settings.Save()
    4. ComboBox1.Items.Remove(ComboBox1.SelectedItem)
    5. My.Settings.Bookmark.Add(ComboBox1.Text)
    6. Form1.Favs.DropDownItems.Add(ComboBox1.Text)
    7. My.Settings.Save()
    8. End Sub

    Jetzt stürtz das Programm ab so bald ich den OK Button drücke
    und zwar hier

    Quellcode

    1. My.Settings.Bookmark.Add(ComboBox1.Text)


    was habe ich falsch gemacht? :cursing:
    Habs jetzt so:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. ComboBox1.Items.Remove(ComboBox1.SelectedItem)
    3. My.Settings.Bookmark.Remove(ComboBox1.SelectedItem)
    4. Form1.Favs.DropDownItems.Remove(ComboBox1.SelectedItem)
    5. My.Settings.Save()
    6. Me.Close()
    7. End Sub


    allerdings verschwindet das ausgewählte lesezecihen nicht aus derm Lesezeichenmenü,
    was habe ich falsch gemacht?

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

    Schau dir ma deine Reihenfolge an.
    Du entfernst als erstes das Item aus der ComboBox und willst dann das gleiche (bereits gelöschte) Item aus deinen DropDownItems entfernen.
    Nimm ma die 1. Zeile nach gaaaanz unten, dann klappts auch mit dem Nachbarn. :)
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Habs jetzt so:

    VB.NET-Quellcode

    1. Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    2. My.Settings.Bookmark.Remove(ComboBox1.SelectedItem)
    3. My.Settings.Save()
    4. ComboBox1.Items.Remove(ComboBox1.SelectedItem)
    5. Form1.Favs.DropDownItems.Clear()
    6. For Each item As String In My.Settings.Bookmark
    7. Form1.Favs.DropDownItems.Add(item)
    8. Next
    9. Me.Close()
    10. End Sub


    Natürlich verschwinden dann ALLLE Items aus dem Menustring Favs aber wie kann ich machen das die Items "Neues Lesezeichen, Lesezeichen löschen und seperator1" nicht gelöscht werden?
    Also wie kann ich machen das Form1.Favs.DropDownItems.Clear(außer.NeuesLesezeichenToolStrip)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Zippozzi“ ()

    Geht dein " Form1.Favs.DropDownItems.Remove(ComboBox1.SelectedItem)" nicht, wenn es gleich hinter "My.Settings.Save()" kommt?
    Ansonsten mußt du diese Items hinter der ForEach-Schleife wieder adden.
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:

    Vatter schrieb:

    Geht dein " Form1.Favs.DropDownItems.Remove(ComboBox1.SelectedItem)" nicht, wenn es gleich hinter "My.Settings.Save()" kommt?

    nein leider stürtz das programm an diesem Punkt ab mit der Fehlermeldung:
    Das Objekt des Typs "System.String" kann nicht in Typ "System.Windows.Forms.ToolStripItem" umgewandelt werden.

    Vatter schrieb:

    Ansonsten mußt du diese Items hinter der ForEach-Schleife wieder adden.

    und wie ?

    Quellcode

    1. Form1.Favs.DropDownItems.Add("Neues Lesezeichen")
    2. Form1.Favs.DropDownItems.Add("Lesezeichen löschen")


    Oder wie?
    Schau dir ma die Methoden der ToolStripItemCollection an. Besonders interessant dürften für dich Index Of() und RemoveAt sein.
    Mit Index Of() nach dem ToolStripMenuItem z.B. der Texteigenschaft suchen und dann mit RemoveAt löschen. 8-)
    Übrigens sagt deine Fehlermeldung bei Remove schon aus, wonach du z.B. bei MSDN suchen kannst. Die weist nähmlich darauf hin, dass deine Items eine eigene Klasse sind, die Eigenschaften besitzt. Eine dieser Eigenschaften könnte ja einen String beinhalten, den du auswerten kannst. Und bei Collections gibts in der Regel immer IndexOf. Das sind genug Suchbegriffe, mit denen man dem Fehler zu Leibe rücken kann.
    Also ruhig ma bei MSDN nachlesen. Mit dem Klassennamen kann man da super suchen und findet schließlich Methoden, Eigenschaften und sogar Beispiele. :rolleyes:
    :thumbsup: Seit 26.Mai 2012 Oppa! :thumbsup:
    Danke für die Antworten,
    Ich habe jetzt aber einfach ein untermenü gemacht in das dann die Lesezeichen reinkommen
    das kann ich dann auch einfach mit clear leeren ohne das die DropDownItems "Lesezeichen hinzufügen" und "lesezeichen löschen"
    auch gelöscht werden.


    Also nochmal Danke an Alle !
    wie kann man machen das das Thema als gelöst makiert wird?