Assuming that your Main Form code has created instances of Forms B, and C like this:
B FormBInstance = new B();
C FormCInstance = new C();
And the Forms have been shown like this:
private void MainForm_Load(object sender, EventArgs e)
{
FormBInstance.Show();
FormCInstance.Show();
}
Then the Button Click EventHandler might look like this:
private void CloseBC_Click(object sender, EventArgs e)
{
if (FormBInstance != null) FormBInstance.Close();
if (FormCInstance != null) FormCInstance.Close();
CloseBC.Enabled = false;
}
I think it's a good idea that if some user-interface Control no longer "does" anything it should be disabled ... or hidden.
But, do keep in mind that once you "close" any instance of a Form: all data, all the results of user interactions with the Controls on the Form, are: lost.