Я немного опаздываю, но у меня были те же симптомы, что описаны выше.У меня тоже было несколько форм, которые вызвали эту проблему, и другие, которые не вызывали.
Я нашел ссылку, которая объясняет проблему и применил концепцию к моим формам.
http://www.pcreview.co.uk/forums/mdi-child-forms-functionality-does-not-work-correctly-windows-f-t2894221.html
В основном это связано с тем, чтобы убедиться, что формы MdiParent установлены перед любым кодом, вызывающим создание окна формы (вызов API CreateWindow () или CreateWindoEX.()).Во всяком случае, я обнаружил, что некоторые из моих окон содержат код в Конструкторах, который вызвал создание окна API.Примером этого была форма с элементом управления WebBrowser.Я передал URL в форму в конструкторе, который, в свою очередь, передал его в метод WebBrowser.Navigate.В этом случае мои окна MdiChild не будут активироваться, как ожидалось.Я изменил конструктор так, чтобы он сохранял URL, а также переопределил метод CreateHandle формы, чтобы фактически установить URL в WebBrowser в кратчайшие возможные сроки.Теперь формы активируются, как и ожидалось.
private string _URL = "";
public frmReportServer(String URL, String Title) : this() {
_URL = URL;
this.Text = Title;
}
protected override void CreateHandle() {
base.CreateHandle();
if (_URL != "") wbReports.Navigate(URL, false);
}
Надеюсь, это поможет ...