3

多数のコントロールを含む 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();

基本的に、 に を追加する代わりにPanelFormに追加される にTabPage追加TabControlされFormます。ただし、これにより次の結果が得られます。 結果

ドキュメントには、 and のプロパティAutoSizeは関連性のない単なるインフラストラクチャであると記載されています。私が見つけた「解決策」のほとんどは、 を使用することを提案しています。これは、フォームのさらに小さな部分を占めるのではなく、上記のようにフォームを埋めるのに役立ちました。ただし、フォーム自体は変更されません。TabControlTabPage.Dock = DockStyles.FillTabControl

Panelのサイズを使用して、のサイズをそれと同じ (またはその関数) にすることを考えましたが、コントロールを追加してもパラメーターは変更されないため、 がペイントされたときにのみ明らかにパラメーターが変更されるTabControlことに気付きました。がペイントしてからサイズ変更するのを待たなければならず、ずさんに聞こえます。より良い解決策はありますか?SizePanelPanel

UPDATE アンカリングと設定の使用

Panel.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;
tabControl.Anchor = AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right | AnchorStyles.Top;

単にこれにつながる:

http://img803.imageshack.us/img803/3453/5112013125710pm.jpg

4

2 に答える 2

6

サイズを設定する代わりに、アンカーを利用してみませんか? /のPaneltoTop | Left | Right | Bottomを固定すると、同じようにto を心配する必要があるのは のサイズだけです。それに固定されている他のすべてのアイテムのサイズが決まります。TabPageTabControlTabControlFormForm

于 2013-05-11T15:09:19.880 に答える
-1

.AutoScaleMode = Noneパネルのデザイナーでユーザーコントロールとして使用します。私の場合、TabControl-TabPage-myPage は動作します。

于 2014-04-01T13:01:22.033 に答える