The TopMost style doesn't work with MDI child form. However, you may handle the Leave event of your top most MDI child, and set the focus back to it. When you want to switch the Top Most MDI child, you may remove the handler and add it to another form. Here is a sample code:private void MDI_Leave(object sender, System.EventArgs e)
{
    Form mdi = (Form)sender;
    if(mdi != null)
        mdi.Focus();
}//Set the event handle 
TopForm.Leave += new EventHandler(this.MDI_Leave);