多数のコントロールを含む Windows フォームがあり、問題なく動作します。すべてのコントロールはTableLayoutPanel
、コントロールのベース サイズにForm
応じて自動サイズ調整され、パネルに応じて自動サイズ調整される に含まれています。そのため、現在の構成の設定に従ってすべてのサイズが変更されるため、さまざまなプラットフォームやコンピューターでのサイズについて実際に心配する必要はありません。 .
たとえば、これがどのように見えるかの簡単な例です。関連するコードは次のとおりです。
//...code defining all the other Commands and .Add()'ing them to the Panel
form.Controls.Add(Panel);
form.AutoSize = true;
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.ShowDialog();
このパネル全体を取得し、TabControl 内に配置して、他の多くのタブの 1 つにすぎないようにしたいと考えています。私はこれを次のようにしました:
//...code defining all the other Commands and .Add()'ing them to the Panel
TabControl tabControl = new TabControl();
tabControl.Dock = DockStyle.Fill;
TabPage tabPage = new TabPage("C1");
tabPage.Controls.Add(Panel);
tabControl.TabPages.Add(tabPage);
form.Controls.Add(tabControl);
form.AutoSize = true;
form.FormBorderStyle = FormBorderStyle.FixedDialog;
form.ShowDialog();
基本的に、 に を追加する代わりにPanel
、Form
に追加される にTabPage
追加TabControl
されForm
ます。ただし、これにより次の結果が得られます。
ドキュメントには、 and のプロパティAutoSize
は関連性のない単なるインフラストラクチャであると記載されています。私が見つけた「解決策」のほとんどは、 を使用することを提案しています。これは、フォームのさらに小さな部分を占めるのではなく、上記のようにフォームを埋めるのに役立ちました。ただし、フォーム自体は変更されません。TabControl
TabPage
.Dock = DockStyles.Fill
TabControl
Panel
のサイズを使用して、のサイズをそれと同じ (またはその関数) にすることを考えましたが、コントロールを追加してもパラメーターは変更されないため、 がペイントされたときにのみ明らかにパラメーターが変更されるTabControl
ことに気付きました。がペイントしてからサイズ変更するのを待たなければならず、ずさんに聞こえます。より良い解決策はありますか?Size
Panel
Panel
UPDATE アンカリングと設定の使用
Panel.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
tabControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
単にこれにつながる: