2010-12-05 20 views
1

MDIアプリケーションで一度に1つの最大化された子フォームが表示され、子フォームにはControlBoxがありません。子フォームの切り替えは、親のMenuStripのアイテムを介して行われます。 .showを使用して別の子フォームを表示する前に、どの子フォームが表示されているか把握する必要がありますか?コントロールボックスを持たないMDI子フォームを開く方法と閉じる方法

また、WindowStateプロパティをすべてのChildフォームに対してMaximizedに設定し、Sizeプロパティを無視すると、Childフォームで初めて.showを使用すると、親では最大化されません。一度私が子供の上に隠れていると、次の.showは最大化された子供の形を生み出します。最初に表示されるときに子フォームが最大化されるのを見る方法はありますか?

+3

この種のウィンドウモデルにはMDIを使用することに意味がありません。それはちょうど途中で取得します。 –

答えて

0
  1. 間違ったフォームが上に終わることができ、その場合には、あなたは通常、あなたが次のいずれかが表示する前に1人のMDI子を非表示にする必要はありませんが、タイミングがアップ混入することが可能です。これは、起動時またはファイルの読み込みまたは終了時に発生する可能性があります。

  2. おそらく、親フォームが最大化されていないときに、親フォームがロードを完了する前にロードされている可能性があります。子フォームは親で正しく最大化できますが、親は大きくなります。親のShownイベントで子フォームを最大化(またはサイズ変更?)するように設定することで、これを修正できます。親のResizeEndイベントでこれを行うこともできます。

ハンス氏によれば、MDIの代わりにタブを使用する方が社会的に受け入れられるようになりました。

+0

「一度に最大化された子フォームを1つだけ」表示する場合は、タブの使用をおすすめしません。切り替えることができない他のタブが表示されている場合は混乱するだけで、表示されるタブが1つしかない場合はスペースが無駄になります。 –

+0

良い点。しかし、Firefoxのオプションのように、開かれているタブが1つしかない場合は、タブの上部を取り除くことができます。 – xpda

+0

ご意見ありがとうございます。特定のソフトウェアについては、MDIは完了した取引です。 – John

関連する問題