FlowLayoutPanel で本当に苦労しています。
私は1つの子コントロールを持つFLP(FlowLayoutPanel)を持つWinformsアプリを持っています - tabControl(その中にwebBrowserを持つ)。フォームには、上部にドッキングされた TableLayoutPanel と、下部にドッキングされた別の TableLayoutPanel もあります。したがって、私の意図は、これらの TLP の間のスペースを FlowLayoutPanel で埋めることです。すべてのコントロールがデザイン ビューでフォームに追加されます。
必要なもの - フォームのサイズを変更すると、FLP のサイズもそれに合わせて適切に変更され、フォームが埋められ、tabControl も FLP を埋める必要があります。
フォームは最大化して実行するように設定されているため、アプリを実行すると最初のサイズ変更がデフォルトで行われます。その時点で、FLP とそのコントロールは、Form_Layout イベント ハンドラーで具体的に指示しない限りサイズ変更されません。
問題は、サイズの変更、アンカー、ドックのどの組み合わせをそのイベント ハンドラーで試しても、常に tabControl の上部または下部がフォーム領域からはみ出し、Web ブラウザーのスクロール バー全体が表示されないことです。初期化; そのため、タブ コントロールが FLP 内に適切にドッキングされていません (または、FLP がフォームにドッキングされていません)。Form_layout コードは次のとおりです。
private void MyForm_Layout(object sender, LayoutEventArgs e)
{
//resize FLP
pnlMainFlowLayout.Size = this.Size - new Size(15, 0);
pnlMainFlowLayout.Dock = DockStyle.Fill;
pnlMainFlowLayout.BringToFront();
//resize child control of FLP
tabControl.Size = pnlMainFlowLayout.Size;
tabControl.BringToFront();
}
FlowLayoutPanel のサイズ変更動作を理解する必要があります。