First you need to create a a second form where you can pass the main form as a reference:
public partial class Form2 : Form {
private Form _parentForm;
public Form2(Form parentForm) {
InitializeComponent();
_parentForm = parentForm;
}
}
then you can create an instance of that form on the first form:
private void button1_Click(object sender, EventArgs e) {
var form = new Form2(this);
form.Show();
form.Activate();
Hide();
}
And to go "back" to the first form you can do something similiar on the second form.
private void button1_Click(object sender, EventArgs e) {
_parentForm.Show();
_parentForm.Activate();
Dispose();
}