2012-12-24 15 views
9

Mam aplikację z niektórymi polami tekstowymi. Mój użytkownik wypełnia pola tekstowe i uruchamia niektóre metody, po zamknięciu dane aplikacji są tracone (zwykle).Zachowaj dane między wykonaniami aplikacji

Chcę zachować wartość kilku pól tekstowych i niektórych zmiennych lokalnych. Nie warto korzystać z database, a proste pliki .txt nie są wystarczająco czyste, czy istnieje inny prosty i krótki sposób przechowywania niewielkich ilości danych między uruchomieniami aplikacji?

Nie jestem pewien, ale słyszałem o niektórych plikach zasobów, czy są one dobre dla tej sprawy?

+0

http://stackoverflow.com/questions/1435037/how-should-i-store-for-user-in-winforms – Habib

Odpowiedz

16

Najprostszym sposobem jest wiążący swoje otaczaniem do application settings:

  • wybierz texbox chcesz zachować
  • przejdź do Właściwości> Dane> (ApplicationSettings)
  • dodać ustawienia aplikacji wiążące do tekstu właściwości
  • na FormClosed zdarzenie zapisz ustawienia aplikacji

Zapisywanie ustawień:

private void Form_FormClosed(object sender, FormClosedEventArgs e) 
{ 
    Settings.Default.Save(); 
} 

Następnym razem, gdy użytkownik uruchomi aplikację, ustawienia zostaną załadowane z pliku konkretnego użytkownika, a pola tekstowe zostaną wypełnione samymi danymi, jak to było, zanim użytkownik zamknął aplikację po raz ostatni.

Również w ustawieniach aplikacji można przechowywać zmienne lokalne, ale trzeba będzie dodać do nich ustawienia ręcznie i ręcznie przeczytać, że ustawienie na starcie aplikacji:

  • Otwórz właściwości folderu w ramach projektu> Settings.settings
  • dodać ustawienia, które chcesz zachować (np MyCounter)
  • zestaw typ MyCounter, zakres, a wartość domyślna (np int, użytkownik, 0)
  • czytaj ustawienie zmiennej lokalnej var x = Settings.Default.MyCounter
  • na formularzu zamknięte Zapisz ustawienie Settings.Default.MyCounter = x tuż przed wywołaniem Settings.Default.Save()
+3

@mahditahs ildari tak, to sprawa typu "Dane" jest kategorią właściwości. Jeśli szukasz nazwy nieruchomości, musisz mieć właściwość '(ApplicationSettings)' –

+1

. W końcu dostałem twój punkt :) świetnie, tego właśnie szukałem, widziałem go wcześniej, ale straciłem zdjęcie na podwórku mojego mózgu. –

0

Zakładając, że jesteś w systemie Windows (jak sugerują znaczniki), czy rozważałeś rejestr?

+0

Tak, mam okna i tak, pomyślałem o rejestrze, ale z pewnych powodów chcę, aby dane znajdowały się w pobliżu mojej aplikacji (podobnie jak inne pliki aplikacji) –

1

można użyć następujących

1- Miejscowy db MS Access na podstawie których można przechowywać niewielkie gabaryty.

2- Zastosowanie Słownik, Serilize/Deserilize go na dysku twardym (używa systemu plików)

3- przechowywać go w rejestrze systemu Windows

+0

Przepraszam, ale stwierdziłem, że nie chcę używać bazy danych ani systemu plików, a rejestr jest również odrzucany w odpowiedzi na lexu. –

+0

@mahditahsildari: cóż, jeśli wykluczysz system baz danych, rejestru ** i ** - nie zostało wiele opcji ... –

+1

Niestety, jeśli chcesz zapisać ustawienia użytkownika, które można później ponownie załadować, trzeba go gdzieś przechowywać. Jaki to rodzaj aplikacji? – TalentTuner

1

Istnieje kilka opcji, ale większość z nich, to” będzie gdzieś umieszczać plik, niezależnie od tego, czy jest to plik tekstowy, zasoby/config lub plik binarny.

Korzystanie z ustawień jest jedną z opcji: http://www.codeproject.com/Articles/17659/How-To-Use-the-Settings-Class-in-C

Można także wziąć trasę serializacji: http://msdn.microsoft.com/en-us/library/vstudio/et91as27.aspx

Albo mógłby zajrzeć do baz danych NoSQL jak MongoDB: http://www.mongodb.org/

Powiązane problemy