here you can use
CheckedChanged event of checkbox for showing and hiding forms
In that event procedure, implement your logic.
CheckBox1.Tag = new Form1();CheckBox2.Tag = new Form2();CheckBox3.Tag = new Form3();
CheckboxSelectionChanged(Object sender, EventArgs e)
{
string FormName=((CheckBox)sender).GetType().Name;
if((CheckBox)sender).Checked)
{
if(FormName=="Form1")
(((CheckBox(sender)).Tag) as Form1).Show();
else if(FormName=="Form2")
(((CheckBox(sender)).Tag) as Form2).Show();
.
.
.
}
else
{
if(FormName=="Form1")
(((CheckBox(sender)).Tag) as Form1).Close();
else if(FormName=="Form2")
(((CheckBox(sender)).Tag) as Form2).Close();
.
.
.
}
}