You can define a class holding all of this data and declare this class as serializable.
[Serializable]
public class FormData
{
public string TextBox1Data { get; set; }
public Image PictureBox1Data { get; set; }
}
private void SaveButton_Click(object sender, EventArgs e)
{
using (SaveFileDialog dialog = new SaveFileDialog())
{
if (dialog.ShowDialog(this) == DialogResult.OK)
{
using (FileStream fs = new FileStream(dialog.FileName, FileMode.OpenOrCreate))
{
FormData data = new FormData();
data.TextBox1Text = textBox1.Text;
data.PictureBox1Data = pictureBoxTechSetup.Image;
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(fs, data);
}
}
}
}
private void LoadButton_Click(object sender, EventArgs e)
{
using (OpenFileDialog dialog = new OpenFileDialog())
{
if (dialog.ShowDialog(this) == DialogResult.OK)
{
using (FileStream fs = new FileStream(dialog.FileName, FileMode.Open))
{
BinaryFormatter formatter = new BinaryFormatter();
FormData data = (FormData)formatter.Deserialize(fs);
textBox1.Text = data.TextBox1Text;
pictureBoxTechSetup.Image = data.PictureBox1Data;
}
}
}