Для справки, решение, предлагаемое в ссылочном посте, работает (хотя и немного рискованно). Однако утечка также исчезает, если вы открываете и закрываете другую дочернюю форму, кажется, что родительский элемент MDI пропускает только последний открытый дочерний элемент.
Если вы хотите устранить утечку, используя обходной путь, упомянутый в ссылочном посте, просто переопределите метод OnMdiChildActivate MDIParent ...
protected override void OnMdiChildActivate(EventArgs e)
{
base.OnMdiChildActivate(e);
typeof(Form).InvokeMember("FormerlyActiveMdiChild",
BindingFlags.Instance | BindingFlags.SetProperty |
BindingFlags.NonPublic, null, this, new object[] { null });
}