none
C# toolstrip items speichern, die zur Laufzeit erstellt wurden RRS feed

  • Frage

  • Hallo,

    ich hab ein Problem und zwar möchte ich toolstrip items speichern die zur Laufzeit erstellt wurden. Also ich ziehe per drag&drop von einer Picturebox die Url und ein Image in die toolstrip, dass ist dann mein button.

      private void toolStrip1_DragDrop(object sender, DragEventArgs e){
    
                ToolStripButton urlicon = new ToolStripButton(((WebBrowser)tabControl1.SelectedTab.Controls[0]).DocumentTitle.ToString(), Url_Iconbox.Image)
                {
                    Name = ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Url.ToString()                   
                };
    
                toolStrip1.Items.Add(urlicon);
    
                urlicon.ToolTipText = ((WebBrowser)tabControl1.SelectedTab.Controls[0]).Url.ToString();
                urlicon.MouseUp += new MouseEventHandler(b_MouseUp);
    
            }
    

    Jetzt möchte ich beim Neustart meines Programmes die buttons in der toolstrip wiederfinden. Gibt es eine Möglichkeit die buttons in Properties.Settings.Default zu speichern oder liege ich da völlig falsch. Ich habe wirklich keine Idee mehr.

    Danke schon mal in Voraus


    • Bearbeitet dev4678 Samstag, 20. Dezember 2014 18:45
    Samstag, 20. Dezember 2014 18:42

Antworten

  • Du könntest auch, wenn es unbekannt viele sind, serialisieren. Hier wäre die Serialsierung als XML gut (http://msdn.microsoft.com/de-de/library/182eeyhh%28v=vs.90%29.aspx - Hier), denn den XML String kannst du speichern.

    Erstelle eine Klasse, die alle wichtigen Werte (Url, Icon, Tooltip etc. besitzt), und kreaiere aus jedem Button eine solche Klasse. Dann erstelle eine Liste und füge die Klassenelemente dort ein.

    Dann die Liste serialisieren, und du hast einen Fertigen string zum speichner.

    Beim Laden umgekehrt (String laden -> Deserialisieren -> Liste -> Alle Elemetne auslesen und Button erstellen -> Buttons einfügen)


    © 2015 Thomas Roskop

    Sonntag, 21. Dezember 2014 09:49

Alle Antworten

  • Beim speichern müsste das Gehen, je nach dem wie du es machst.

    Sowie ich verstanen habe, sind ist ein Button bei dir nur ein Bild (quasi).

    Dann speichere doch die URL's als List<URL> in Settings.


    © 2015 Thomas Roskop

    Samstag, 20. Dezember 2014 19:26
  • Einfach nur Urls als strings zu speichern ist kein Problem, dann hab ich ja nur die Url.

    Ich will die toolstrip buttons, die ich in die toolstrip reinziehe speichern, die enthalten jeweils eine url, icon und ein tooltip.

    Vielleicht kann ich ja url, icon und tooltip als ein item in Properties.Settings.Default speichern und dann im form_load event die items wieder in die toolstrip mit toolstrip.items.addrange(Properties.Settings.Default....) einfügen.

    Samstag, 20. Dezember 2014 23:33
  • Du könntest auch, wenn es unbekannt viele sind, serialisieren. Hier wäre die Serialsierung als XML gut (http://msdn.microsoft.com/de-de/library/182eeyhh%28v=vs.90%29.aspx - Hier), denn den XML String kannst du speichern.

    Erstelle eine Klasse, die alle wichtigen Werte (Url, Icon, Tooltip etc. besitzt), und kreaiere aus jedem Button eine solche Klasse. Dann erstelle eine Liste und füge die Klassenelemente dort ein.

    Dann die Liste serialisieren, und du hast einen Fertigen string zum speichner.

    Beim Laden umgekehrt (String laden -> Deserialisieren -> Liste -> Alle Elemetne auslesen und Button erstellen -> Buttons einfügen)


    © 2015 Thomas Roskop

    Sonntag, 21. Dezember 2014 09:49