Einstellungen Speichern

  • VB.NET

Es gibt 21 Antworten in diesem Thema. Der letzte Beitrag () ist von razzzer530i.

    Einstellungen Speichern

    wie kann kann ich einstellungen speichern
    ich möchte 5 verschiedene radiobuttos und 1 checkboxs speichern
    also ihre letzte einstellung speichern

    ich habe 2 checkboxen
    die erste heist das programm versteckt starten
    die 2 soll alle einstellungen der radiobuttons speichern

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
    2. Application.Exit()
    3. If CheckBox1.Checked Then
    4. ' checkbox1 einstellungen speichern
    5. End If
    6. If CheckBox2.Checked Then
    7. ' das die einstellungen gespeichert werden
    8. End If
    9. End Sub


    danke im vorraus
    ^^
    My.settings heisst das ideale Stichwort.
    Leg dir im Projekt unter (glaube es heisst so) Einstellungen und erstelle dir dort neue Settings.

    Vorteilhaft einen Booelan mit true oder false.

    Dann kannst du im Form-Close Event alles Speichern:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    2. My.settings.DEINNAME = CheckBox1.Checked
    3. My.settings.Save()
    4. End Sub


    Und in den Load-Event:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. ChechBox1.Checked = My.settings.DEINNAME
    3. End Sub


    Mfg Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...
    Was willst du ?

    Das ist hirnrissig..
    Beim speichern die Werte true/false in der TextBox speichern und dann wieder laden ?
    Dann kannst dus ja gerade so guet wie direkt machen...

    Das ist erstens nicht so schön und zweitens aufwändiger...

    Mfg Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...
    Dann versuch mal die Opacity Eigenschaft.

    Der Fehler liegt beim settings, sonst würde es mit Me.Hide() funktionieren^^

    Thread:

    VB.NET-Quellcode

    1. If My.Settings.CheckBox1Status = True Then
    2. Me.Hide()
    3. Else
    4. MessageBox.Show("Der Status ist nicht true","Titel")
    5. End If

    Wenn die Box erscheint, dann ist oder war die CheckBox nicht angehäckelt..
    Auch My.settings.Save() nicht vergessen ?

    Mfg Dancger
    MESS WITH THE BEST, DIE LIKE THE REST! :evil:
    n'paar Links: DNS Tools, Steal WA DB, Droidsheep...

    Dancger schrieb:

    My.settings heisst das ideale Stichwort.
    Leg dir im Projekt unter (glaube es heisst so) Einstellungen und erstelle dir dort neue Settings.

    Vorteilhaft einen Booelan mit true oder false.

    Dann kannst du im Form-Close Event alles Speichern:

    VB.NET-Quellcode

    1. Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
    2. My.settings.DEINNAME = CheckBox1.Checked
    3. My.settings.Save()
    4. End Sub


    Und in den Load-Event:

    VB.NET-Quellcode

    1. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    2. ChechBox1.Checked = My.settings.DEINNAME
    3. End Sub


    Mfg Dancger


    Hi, bei mir funktioniert das zwar, aber nur beim Debuggen. Wenn ich mein Programm erstelle kann es die Einstellungen nicht laden. Was muss ich ändern?

    Danke schonmal ;)

    NicoHood schrieb:

    Hi, bei mir funktioniert das zwar, aber nur beim Debuggen. Wenn ich mein Programm erstelle kann es die Einstellungen nicht laden.


    Bedenke, dass VS fürs Debuggen und für Release verschiedene Ordner hat. Jeder Ordner hat seine eigene Config-Datei, in der deine Settings gespeichert werden. Das bedeutet, dass die Settings, die Du im Debug-Modus eingetragen und gespeichert hast, im Release nicht vorhanden sind.
    Ok Dankeschön.
    In einem XML File ist bestimmt schöner, aber dafür nun zu aufwendig.
    Die Registry ist aber dennoch die beste Lösung, haste voll und ganz Recht. Dafür macht es aber mehr Sinn ein Programm zu installieren.

    In der XML steht folgendes. Brauche ich das nun oder nicht?


    <?xml version="1.0"?>
    -<doc> -<assembly> <name> Grabbertool </name> </assembly> -<members>
    -<member name="P:WindowsApplication1.My.Resources.Resources.ResourceManager">
    <summary> Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird. </summary> </member>
    -<member name="P:WindowsApplication1.My.Resources.Resources.Culture">
    <summary> Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden. </summary> </member>
    -<member name="T:WindowsApplication1.My.Resources.Resources">
    <summary> Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw. </summary> </member> </members>
    </doc>
    Hey Leute, muss das Thema nochmal aufgreifen.

    my.settings ist ja eig ne schöne Sache. Jetzt habe ich aber immer X-beliebig viele Steuerelemente und Einstellungen die immer variieren.
    Wie kann ich denn indiciduelle Einstellungen von allen Steuerelementen machen?

    Auf meiner Form kann es zb. UserControl1 - UserControl3 oder UserControl1-UserControl500 geben.

    kann ich irgendwie beim Formclosing
    for each c as controle
    'Control1.text speichern
    control1.checkstatus speichern


    usw.

    Komme da nicht so recht auf den richtigen Pfad.
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~
    Ich würde das mit einer INI-Datei lösen.Als erstes musst du eine Funktion erstellen: (Du fügst unter Public Class Form1 den folgenden Code ein:)

    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_ReadValueFromFile(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_WriteValueToFile(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



    Wenn zum Beispiel eine Checkbox anklickst bzw. checkst, dann machst du einen Button und nennst ihn "Speichern".Im Code des Buttons fügst du folgendes ein:

    Quellcode

    1. INI_WriteValueToFile("Name1", "Name2", CheckBox1.Checked, ".\Dateiname.ini")


    Wenn du jetzt machen möchtest, dass beim starten der Form immer ausgelesen wird, ob die Checkbox.checked = True / False , fügst du folgendes in "form1.load":

    Quellcode

    1. (FormX.)CheckBox1.Checked = INI_ReadValueFromFile("Name1", "Name2", "", ".\Dateiname.ini")


    VG ComputerGamer

    ErfinderDesRades schrieb:



    Hab ich mir angeschaut und finde das echt klasse.
    Allerdings kann ich den ComplexConverter nicht verwenden, da ich die Fehlermeldung "Der Typ "complexconverter" ist nicht definiert" bekomme.
    Dein Tut ist zwar echt spitze und lässt sich auch super verstehen, allerdings fehlt genau dieser Part. Ich weiß weder wo ich den her bekomme noch wie er deklaiert wird oder wie ich es selbst mache.
    Hättest du da noch ein bisschen Starthilfe?

    @ComputerGamer
    an sich auch super nur ist mir defenitiv klar, dass die Datenmengen recht groß(für diese Anwendung) sein werden und ich dadurch auch wieder extrem viel Code verwenden muss.

    Ich sage mal so: ich habe Steuerelemente, die der User selbst hinzufügt. Also muss ich die Position, und die Einstellungen des Steuerelementes speichern. und das für bis zu 50 Steuerelementen.
    Wie ich die in Kurzform und flexibel speichern kann, das würde ich sehr gerne von euch lernen :)

    Danke trotzdem schonmal :)
    ~Wir leben zwar alle unter dem gleichen Himmel, aber es haben nicht alle den gleichen Horizont~

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