У меня есть форма, и у меня есть кнопки, которые делают вещи.C# сохранение состояния формы со всеми элементами управления
При нажатии кнопки окна образуют элементы управления, такие как текстовые поля или групповые ящики, кнопки появляются и исчезают, и изменить место на моей форме, ибо это динамическая форма :)
Однако то, что я хотел бы чтобы сделать это, нажмите кнопку (BACK
), которая получит мою форму до состояния, которое было до действия кнопки, вернув элементы управления в место и сообщив, что они были перед действием.
Я думал о классе C
MyState(), который будет иметь что-то вроде массива Form1. Я буду сохранять состояние формы в этом массиве и когда я нажму кнопку back
, чтобы получить из массива, который «копирует» состояние Формы и, возможно, индекс для индексирования состояний.
Я не знаю, как реализовать это, к сожалению. : |
Может ли кто-нибудь показать мне правильный способ сделать это?
class Mystate
{
private Form1 [] state;
public Mystate(int n)
{
this.state = new Form1[n];
}
public Form1 this[int index]
{
get
{
return state[index];
}
set
{
this.state[index] = value;
}
}
}
Вы пробовали просто сериализовать форму с помощью BinarySerializer перед каждым действием и поместить сериализованные данные в стек? Не уверен, что форма и ее дети являются сериализуемыми или нет, но это, безусловно, было бы легким подходом, если они есть. –
Я действительно не знаю, что именно вы пытаетесь сделать, но похоже, что вы можете просто использовать TabControl или что-то подобное. – marinus
Возможный дубликат [Создание Wizards для Windows Forms в C#] (http://stackoverflow.com/questions/2340566/creating-wizards-for-windows-forms-in-c-sharp) –