Tabpages in my.settings speichern

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Artentus.

    Tabpages in my.settings speichern

    Hallo,

    Ich suche nach einer möglichkeit meherere gesamte tabpages mit allen ihren einstellungen im Form_closing event in den my.settings zu speichern bekomme es aber nicht hin weil ich nicht weiss auf welchen typ ich meine my.settings (my.settings.tp).

    Welchen typ benutzt mann darfür mit google bin cih nicht fündig geworden.

    mfG.
    Gin98
    P.s wie geht das im Forum mit der Progressbar?
    0%
    Vllt würde auch eine Txt datei herhalten können

    VB.NET-Quellcode

    1. Dim swr as new Io.Streamwriter(application.startuppath & "\Tabpages.txt")
    2. For i = 0 to Tabcontrol1.Tabpages.Count -1
    3. swr.writeline(Tabcontrol1.Tabpages(i).Text.Tostring & Vbnewline)
    4. next
    5. swr.close



    (Aus den Kopf geschrieben musst du vllt noch ein wenig anpassen)
    wenn du nur die namen (bezeichnungen) der tabs und deren reihenfolge speichern willst, dann brauchst du mal ein setting vom typ System.Collections.Specialized.StringCollection (Bereich: user). name zb: Tabs.

    Zum Speichern:

    VB.NET-Quellcode

    1. My.Settings.Tabs.Clear() 'damit evtl. schon gespeichertes gelöscht wird
    2. For Each tab as TabPage in TabControl1.TabPages
    3. My.Settings.Tabs.add(tab.Text)
    4. Next

    Zum Wiederherstellen:

    VB.NET-Quellcode

    1. For Each tab in My.Settings.Tabs
    2. Dim tp As New TabPage
    3. tp.Text = tab
    4. TabControl1.TabPages.add(tp)
    5. Next


    Falls du aber mehrere Eigenschaften der tabpages speichern willst (name, text, font, backcolor, size etc.) solltest du das in einer .ini speichern.
    @squisheemixxa

    Danke,

    Ich will mit einstellungen am wichtigsten ist mir der tooltip text.

    Da ich ein neuling bin 2 Fragen zu der .ini:

    1.) Wie mache ich das ?

    Quellcode

    1. System.IO.File.WriteAllText("C:\text.ini",'????????')


    so?

    2.) Mein Projekt ordner (Relase) ist in eienr installer datei wie bekomme ich es hin das die .ini in das installirte verzeichnis erstellt wird?

    Quellcode

    1. System.IO.File.WriteAllText("C:\text.ini",'????????')



    mfG.

    Bis zur .Ini datei: 70%
    ein beispiel zum speichern in einer ini:

    das muss in deine Form1-klasse:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. Private Declare Ansi Function GetPrivateProfileString Lib "kernel32.dll" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Int32, ByVal lpFileName As String) As Int32
    2. Private Declare Ansi Function WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpString As String, ByVal lpFileName As String) As Int32
    3. Public Function INI_Read(ByVal strSection As String, ByVal strKey As String, ByVal strDefault As String, ByVal strFile As String) As String
    4. Dim strTemp As String = Space(1024), lLength As Integer
    5. lLength = GetPrivateProfileString(strSection, strKey, strDefault, strTemp, strTemp.Length, strFile)
    6. Return (strTemp.Substring(0, lLength))
    7. End Function
    8. Public Function INI_Write(ByVal strSection As String, ByVal strKey As String, ByVal strValue As String, ByVal strFile As String) As Boolean
    9. Return (Not (WritePrivateProfileString(strSection, strKey, strValue, strFile) = 0))
    10. End Function
    11. 'der pfad zur .ini-Datei:
    12. Public IniPath As String = Application.StartupPath & "\Tabs.ini"

    mit diesen subs speicherst / liest du die tabs aus:
    Spoiler anzeigen

    VB.NET-Quellcode

    1. 'Speichern:
    2. Private Sub SaveTabs()
    3. Dim TabCount As Integer = 0
    4. For Each tp As TabPage In TabControl1.TabPages
    5. TabCount = TabCount + 1
    6. 'name, text und Tooltiptext werden gespeichert!:
    7. INI_Write("Tab" & TabCount, "Name", tp.Name, IniPath)
    8. INI_Write("Tab" & TabCount, "Text", tp.Text, IniPath)
    9. INI_Write("Tab" & TabCount, "ToolTipText", tp.ToolTipText, IniPath)
    10. Next
    11. INI_Write("NrOfTabs", "NrOfTabs", TabCount, IniPath)
    12. End Sub
    13. 'Tabs wieder erzeugen:
    14. Private Sub GetTabs()
    15. Dim NrOfTabs As Integer
    16. NrOfTabs = INI_Read("NrOfTabs", "NrOfTabs", "", IniPath)
    17. For i = 1 To NrOfTabs
    18. Dim tp As New TabPage
    19. tp.Name = INI_Read("Tab" & i, "Name", "", IniPath)
    20. tp.Text = INI_Read("Tab" & i, "Text", "", IniPath)
    21. tp.ToolTipText = INI_Read("Tab" & i, "ToolTipText", "", IniPath)
    22. TabControl1.TabPages.Add(tp)
    23. Next
    24. End Sub

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

    @ All Danke!



    //Edit Habe den code erstmal eingesetzt und beim Form_closing erreignis handler:

    Quellcode

    1. savetabs()


    und beim loading:

    Quellcode

    1. gettabs()




    Keine Fehler oder andere sachen aber es geht nciht gibt es denn eig. keine my.settings sache dafür und warum geht das in den my.settings nicht? ?(

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

    gin98 schrieb:


    Keine Fehler oder andere sachen aber es geht nciht gibt es denn eig. keine my.settings sache dafür und warum geht das in den my.settings nicht? ?(

    es geht nicht? sorrry aber der post war irgendwie nicht so verständlich... wenn nicht, was genau geht denn nicht?

    Edit:

    Erklär doch bitte mal was genau du damit vorhast ... vlt kann dir dann ja eher jemand weiterhelfen.
    sollen die daten dauerhaft gespeichert werden? auch beim nächsten programmstart noch verfügbar sein?
    und warum willst du es unbedingt in den my.settings speichern und nicht in einer .ini?

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