1

DLLに埋め込まれている正常に動作するWindowsフォームのセットがありますが、完全に制御することはできません。これらは、アプリケーションがポップアップ地獄のように感じられないように、1つのインターフェイスに統合しようとしている個別のレガシープロジェクトの一部です。

これを行う方法は、MDI親フォームを作成し、その子として他のフォームを開くことだと思います。必要に応じて、一度に1つの子フォームを作成します。ナビゲートすると、1つのMDIドキュメントが閉じ、別のMDIドキュメントが開きます。

ただし、親MDIフォームには、ナビゲーションコントロールが必要です。そして、タブコントロールを使用したいと思います。親MDIフォームにタブコントロールをアタッチすることは可能ですか?私が見つけることができるすべてのドキュメントと例はツールストリップですが、それは私が達成したいことにはあまりにも制限的です。

表示するコードがありません、申し訳ありません。私が欲しいものがまったく可能かどうかはわかりません。

更新以下に示すように、私がやろうとしていたことを達成するために、MDIは本当に必要ありませんでした。ただし、質問はそのままにしておきます。

4

1 に答える 1

2

これを正しく読んだ場合、TabControlを使用して各フォームに移動する必要があるため、MDIが探しているものではないと思います。

falseに切り替えてTopLevelフォームから境界線を削除すると、基本的にフォームがUserControlに変わり、選択したTabPageパネルに追加できます。

  Form f = new Form();
  f.TopLevel = false;
  f.FormBorderStyle = FormBorderStyle.None;
  f.Dock = DockStyle.Fill;
  tabPage1.Controls.Add(f);
  f.Visible = true;

FormDLLから参照しているフォームに変更します。

于 2013-01-21T20:22:15.377 に答える