MDI形式のパネルがあり、パネルにいくつかのコントロールがあります。MDIChildフォームを開くと、フォームはパネルの後ろに表示されます。forms.BringtoFront()とpanel.SendtoBack()を試しましたが、何も機能しません。次に、パネルのsetchildIndexを0に設定しましたが、機能しませんでした。
パネルを常にすべてのフォームの後ろに置く方法はありますか?
ありがとう
問題は、MDIの子のコンテナがパネルの兄弟であるということです。パネルは、そのコンテナの上または後ろにあります。
パネルをMDIの子と同じコンテナーに入れたいと思っていますが、それが可能であるとは思いません。MDIコンテナは、MDIの子だけを保持します。
要するに、MDIがあなたに必要なものを提供するつもりはないと思います。
新しい空のフォームを作成し、Form_loadイベントでこのフォームの次のプロパティを設定します
private void bg_Load(object sender, EventArgs e)
{
this.ControlBox = false;
this.FormBorderStyle = FormBorderStyle.None;
this.WindowState = FormWindowState.Maximized;
}
その後、MDIフォームのロードイベントに次のコードを記述します
private void Main_Load(object sender, EventArgs e)
{
bg bg = new bg(); // create object of empty form my empty form name is "bg"
bg.MdiParent = this;
bg.Show();
}
バックグラウンドで必要なものは何でも、空のフォームに追加します。
パネルをMDI子ウィンドウに配置し、MDI親内でその位置とサイズを修正できますか?次に、パネルを含む1種類のMDI子ウィンドウのみがMDI親内で一度に開くことができるようにします。
BringToFront
メソッドの後にメソッドを追加しましたShow
。
私にとってはうまくいきます。
フローレイアウトコンテナを配置し、それに子を追加すると、他のパネルの上部に配置されます