It looks like what you want to do quickly and easily map the contents of the file to your windows forms controls.
If that is the case then you should look at creating a class which represents the various states of your windows form - text box contents living in string properties, check boxes as boolean properties etc.
Once you have create that class you can then databind an instance of it to all your windows forms controls, this will mean that the windows forms databinding process will keep the ui and the class in sync for you.
The last step is the save and load that data. For that do some investigation in to C# serialization, there are lots of tutorials on how to write a class out to a file representation, where the only work you need to do is apply a few attributes to the class and call the correct methods from the serialization namespace.
Here is some very quick code showing the databinding for an example form with a single textbox and three radio buttons. You will need to experiment for your real case to get the right implementation of your backing class - radio buttons and radio button groups can be a little tricky.
I'm certain the code could be improved but it is just intended to show the approach.
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;
}
}
}
Where I create an instance of my BindingClass above you would instead deserialize the class from your file if it exists.
This approach is in someways leading towards an MVVM approach where the class used to support binding much like a View Model - I'd recommend getting into that mindset since you don't want the binding class to start containing logic. It is only there to give you something to bind against and something to serialize out which represents your form - you should have other logic containing objects that are you actual Model.
I won't show code for the serialization - there are lots of examples online for this. Here is a link to an MSDN article that would be a good first step: http://msdn.microsoft.com/en-us/library/ms950721.aspx