0

C#Windowsアプリケーションの単一のフォームでタブコントロール内に複数のウィンドウフォームを配置できますか?

たとえば、それを実装するのは正しい方法ですか、それともユーザーコントロールを使用する必要がありますか?

  Form2 frm = new Form2();
  frm.TopLevel = false;
  frm.Visible = true;
  frm.FormBorderStyle = FormBorderStyle.None;
  frm.Dock = DockStyle.Fill;
  tabControl1.TabPages[0].Controls.Add(frm);
4

3 に答える 3

2

Windowsフォームを使用することはできませんし、使用する必要もありませんが、実行できるのは次の方法です。

  • 現在のタブのすべてのコントロールを保持するUserControl
  • GroupBoxコントロール
  • パネルコントロール
  • TableLayoutPanelコントロールは、いくつかのプロパティに基づいて子コントロールの位置を分散するため、UIはさまざまな画面サイズと解像度で同等に見栄えがします。

これらを使用すると、VSデザインでUIを作成できるため、変更を簡単に管理できます。コントロールと可能なオプションの数、つまりタブの数が非常に多い場合は、それらを動的にロードするオプションも検討できます。しかし、この場合、プロジェクトの正しい整合性と保守性は難しくなります。

于 2013-03-18T13:39:25.363 に答える
2

個別のタブの機能をUserControlに移動することでメリットが得られるようです。

UserControlは、機能をメインフォームから分離するための優れた方法です。

于 2013-03-18T13:39:53.927 に答える
1

15個のタブコードを1つのc#ファイルに入れることを強制するものは何もありません。部分クラスの原則を使用して、単一のクラスを多数のソースファイルに分割できます。コードを複数のクラスに分割することもできます。VisualStudioは単なるツールであり、ディレクターではありません。VSが指示するように動作する必要はありません。これは、最も一般的なケースのみをカバーし、自分のような特別な状況でより優れたクラス設計を行うことができます。

そして、はい、タブに何でも置くことができます。つまり、他のクラスのCONTROLオブジェクトを意味します。フォームオブジェクトを配置することもできます。フォームオブジェクトがすでに作成されている場合は、基盤となるWindowsAPIで許可されているためです。

于 2013-03-18T13:42:16.380 に答える