Ukládání nastavení v programu   zodpovězená otázka

VB.NET

Ahoj

Chtěl jsem se zeptat na jednu věc.

Dá se ukládat nastavení v programu (checkbox, combobox,..)?

Myslím si, že jsou 2 postupy.

1. udělat přes txt soubor (přehledné, pracné)

2. To právě nevím.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Do textového souboru se to v žádném případě neukládá, maximálně tak do INI, což je ale rarita. Konfigurační systém v .NET Frameworku pracuje se soubory ve formátu XML a veškerou infrastrukturu vytvoří samotné Visual Studio po naklikání požadovaných hodnot ve vlastnostech projektu. K jednotlivým konfiguračním hodnotám se potom přistupuje pomocí singletonu My.Settings. Lze udělat i pokročilé konfigurační hodnoty (kolekce vlastních objektů), ale to už vyžaduje celkem hluboké znalosti konfiguračního API.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Takže, jak docílím ukládání nastavení v programu přes ten my.settings?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ve vlastnostech projektu je záložka setting a v ni je tabulka, do které stačí napsat název nastaveni, datový typ, hodnotu. Po uložení VS automaticky vygeneruje kód. Nastavení je dostupne jak již bylo uvedeno v my.setting.název nastaveni.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Teď nemohu k VB

A pak to mám vyvolat textbox.text = my.setting.slovo ?

A když to budu chtít uložit tak my.setting.slovo = textbox.text

Potom to zkusím, takže zatím děkuji

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ano, v podstatě takto, ale pro uložení se myslim musí ještě zavolat metoda: My.Settings.Save()

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ve výchozím nastavení projektu je Save My.Settings on Shutdown, takže nemusí.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Vyskytl se problem

tady http://prntscr.com/1m0erv vidite ze to mam nastavene,ale tady http://prntscr.com/1m0f4m to nezna ten prikaz, proste to nenabizi

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Pochopitelně, když se to snažíte volat na úplně jiném objektu...

nahlásit spamnahlásit spam 1 / 3 odpovědětodpovědět

na jakem jinem objektu?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Skutečně nevím, jestli si ze mě děláte prdel, nebo to myslíte smrtelně vážně...

nahlásit spamnahlásit spam 1 / 3 odpovědětodpovědět

Myslím to smrtelně vážně.

Místo toho, aby jste mě pomohl, jen tady zbytečně nadáváte.

Každý není jako vy a na 100% když jste se učil, tak jste se taky ptal.

Jenom jsem se slušně zeptal, co myslíte tím "jiném objektu"

Pokud jste takový, jaký jste, neměl by jste tu být.

Takže pokud mi chcete pomoct, budu jen rád.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

V kódu máte Me, ale má to být My.Settings

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Ajo... já jsem teda ale blbec.

Jak jsem zvyklej psát me.form2, tak jsem taky napsal me. :D

Děkuju ti anonyme, aspoň jsi schopný, než ten Ondřej, který dělá až moc chytrýho

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Nějak to nefunguje.

Tady je to nastavené http://prntscr.com/1m3zlu měl jsem tam i napsáno false, ale taky nefunguje.

Tady je kód, že na načtení form se načte i označení pro chechbox http://prntscr.com/1m3zft

A tady se ukládá http://prntscr.com/1m3zlu

No a teď v praxi

1. http://prntscr.com/1m3zxt

2. http://prntscr.com/1m402h

3. Znova jsem spustil ten program a http://prntscr.com/1m403w

Nevím, co dělám špatně

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Tak nějak nevím co Vám na setting nefunguje, je to vážně primitivní.

Př. Na formu je jeden Checkbox (checkbox1) a v setting je jedna položka Checkbox_State (bool)

V kódu:

Public Sub New()
 
    ' This call is required by the designer.
    InitializeComponent()
 
    ' Add any initialization after the InitializeComponent() call.
 
    CheckBox1.Checked = My.Settings.Checkbox_State
 
End Sub
 
 
Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
 
    My.Settings.Checkbox_State = CheckBox1.Checked
    My.Settings.Save()
 
End Sub
nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Díky, už to mám :)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback