開いたり閉じたりできる2つの子ウィンドウを持つ親mdiウィンドウがあります。親は最大化された状態から開始します。子供が常に画面に100%表示されるように、子供が親の境界を越えないようにします。
親(mdi)が最大化されており、子(ウィンドウフォーム)ウィンドウを画面上に残して、モニターの外にドラッグできないようにする必要があります。基本的に、子供が画面からドラッグできないようにする方法。
何かご意見は?
これはあなたの問題への答えかもしれません:
protected override void OnMove(EventArgs e)
{
//
// Get the MDI Client window reference
//
MdiClient mdiClient = null;
foreach(Control ctl in MdiParent.Controls)
{
mdiClient = ctl as MdiClient;
if(mdiClient != null)
break;
}
//
// Don't allow moving form outside of MDI client bounds
//
if(Left < mdiClient.ClientRectangle.Left)
Left = mdiClient.ClientRectangle.Left;
if(Top < mdiClient.ClientRectangle.Top)
Top = mdiClient.ClientRectangle.Top;
if(Top + Height > mdiClient.ClientRectangle.Height)
Top = mdiClient.ClientRectangle.Height - Height;
if(Left + Width > mdiClient.ClientRectangle.Width)
Left = mdiClient.ClientRectangle.Width - Width;
base.OnMove(e);
}
MDI子フォームに追加します。ダブルバッファリングをオンにしても少しちらつきますが、私が見つけた最良の解決策です。