Jak zrobić moduł zapisu i odczytu dla całego programu?

0

Wiem, że się da dla poszczególnych składowych... zrobiłem sobie, korzystając z dobrodziejstw MSDN podstawowy moduł zapisu danych z DataGridView do .txt jako jeden string rozdzielony myślnikami (choć, już odczytu nie..).

Mój problem jest taki, że mam do przechowania jako save nie tylko datagridview ale i co gorsza usercontrol na którym znajdują się elementy graficzne... czyli ważne jest, żeby przechować ich wielkość, nazwę, kolor, informacje i rozmieszczenie.. wyciągnięcie tych informacji to najmniejszy problem..

Mógłby mnie ktoś poratować kodem, który łączyłby zapis datagridview i tego elementu Box (na którym są te rysunki)... czyli dwa zupełnie różne elementy.. no i sposób na odczytanie ich później?

0

Xml, serializacja. Niestety obiekty gui nie są serializowalne. Ale jeśli stworzysz odpowiednie klasy, które np. w konstruktorze dostaną twój Box, a później udostępnią zestaw właściwości jakie chcesz zapisać /odczytać z pliku i klasę oznaczysz jako serializowalną to można powiedzieć że .net zrobi pracę za ciebie.

[Serializable]
public class BoxSerializable
{
  public BoxSerializable()
  {
    this.Box = new BoxControl();
  }
  public BoxSerializable(BoxControl box)
  {
    this.Box = box;
  }

  [XmlIgnore]
  public BoxControl Box {get; set;}

  public Color BackColor
  {
    get {return this.Box.BackColor;}
    set {this.Box.BackColor = value;}
  }
 ...
}

Albo ręcznie dokonywać serializacji, czyli ręcznie produkować i odczytywać xml.

0

Skoro piszesz w C++, to masz do dyspozycji całą gamę:
• serializację dotnetową
• dotnetowe funkcje do operowania na plikach
• strumienie plikowe C++
• funkcje biblioteki standardowej C
• WinAPI

1 użytkowników online, w tym zalogowanych: 0, gości: 1