Похоже, что вы хотите сделать быстро и легко сопоставить содержимое файла с вашими элементами управления форм Windows.
Если это так, то вам следует взглянуть на создание класса, который представляет различные состояния формы Windows - содержимое текстовых полей, живущих в строковых свойствах, флажки в виде логических свойств и т. Д.
Как только вы создадите этот класс, вы сможете затем привязать его экземпляр ко всем вашим элементам управления форм Windows, это будет означать, что процесс привязки к данным форм Windows будет поддерживать интерфейс и класс синхронизированными для вас.
Последний шаг - сохранение и загрузка этих данных. Для этого проведем некоторое исследование в сериализации C #, есть много обучающих программ о том, как записать класс в представление файла, где единственная работа, которую вам нужно сделать, это применить несколько атрибутов к классу и вызвать правильные методы из пространство имен сериализации.
Вот очень быстрый код, показывающий привязку данных для примера формы с одним текстовым полем и тремя переключателями. Вам нужно будет поэкспериментировать с вашим реальным делом, чтобы получить правильную реализацию вашего вспомогательного класса - переключатели и группы переключателей могут быть немного хитрыми.
Я уверен, что код можно улучшить, но он просто предназначен для демонстрации подхода.
public partial class Form2 : Form
{
private BindingClass backingClass;
public Form2()
{
InitializeComponent();
backingClass = new BindingClass();
backingClass.Name = "Hippo";
backingClass.One = true;
textBox1.DataBindings.Add("Text", backingClass, "Name");
radioButton1.DataBindings.Add("Checked", backingClass, "One");
radioButton2.DataBindings.Add("Checked", backingClass, "Two");
radioButton3.DataBindings.Add("Checked", backingClass, "Three");
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show(backingClass.Name);
if (backingClass.One)
{
MessageBox.Show("One");
}
if (backingClass.Two)
{
MessageBox.Show("Two");
}
if (backingClass.Three)
{
MessageBox.Show("Three");
}
}
}
public class BindingClass
{
private bool one;
private bool two;
private bool three;
public string Name { get; set; }
public bool One {
get { return one;}
set
{
one = value;
two = !value;
three = !value;
}
}
public bool Two
{
get { return two; }
set
{
two = value;
one = !value;
three = !value;
}
}
public bool Three
{
get { return three; }
set
{
three = value;
one = !value;
two = !value;
}
}
}
Там, где я создаю экземпляр моего BindingClass выше, вы вместо этого десериализуете класс из вашего файла, если он существует.
Этот подход в некотором роде ведет к подходу MVVM, где класс, используемый для поддержки связывания, очень похож на модель представления - я бы порекомендовал войти в это мышление, поскольку вы не хотите, чтобы класс связывания начинал содержать логику. Это только для того, чтобы дать вам что-то, с чем можно связываться, и что-то для сериализации, представляющее вашу форму - у вас должна быть другая логика, содержащая объекты, которые вы на самом деле являетесь Моделью.
Я не буду показывать код для сериализации - для этого есть много примеров. Вот ссылка на статью MSDN, которая будет хорошим первым шагом: http://msdn.microsoft.com/en-us/library/ms950721.aspx