すべてがcontrol.Dock = DockStyle.Top
設定されているいくつかのコントロール (パネル、グループ ボックスなど) を含むフォームがあります。フォームの ComboBox の選択された値に基づいて、これらのパネルの一部のみが同時に表示されます (非表示のパネルは選択されたオプションには適用されないため)。ドッキングは、UI をよりコンパクトに見せるためのものです。
これらのパネルの Visible プロパティは、ComboBox の選択が変更され、フォームの Shown イベントが発生するたびに変更されます (フォームが初めて表示され、ComboBox の選択がまだ変更されていないときに、すべてのパネルが表示されるわけではないため)。
さて、問題は、フォームを閉じると (モーダル ダイアログであるため、破棄されません)、後で再度開き、コンボ ボックスの選択を変更すると、フォームの上部にあるパネルの表示順序が変更されることです。フォームが一度閉じられるまで発生しません。ドッキングされたコントロールの表示順序は、親コントロールの ControlCollection 内のこれらのコントロールの順序にリンクされていることを知っています。これにより、コントロールの z オーダーも決定されるため、質問のタイトルになります。
コントロールの順序が変更される原因とそれを回避する方法は?