I guess this behaviour is caused by the fact that you show the second form as modal dialog. Use the Form.Show method to display the second form. Furthermore you should no longer need to do this inside an extra thread, so the whole thing cuts down to:
private void button1_Click(object sender, System.EventArgs e)
{
Demo frm2 = new Demo();
this.Hide();
frm2.Show();
}
"Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning." - Rick Cook
www.troschuetz.de