0

私は、いくつかのTableLayout(他のいくつかのユーザーコントロールも持っている)を含むパネルを持つwinformユーザーコントロールを持っています。

私のすべてのコンポーネントにはDock=FillAutosize=Trueプロパティがあります。

現在、ウィンドウのサイズを変更すると、スクロールバーが表示されず、オーバーフローが表示されません。

パネルの AutoScrollMinSize を何かに設定すると、設定したサイズに達するとスクロールバーが表示されることがわかりました。

私の問題は、実行時に要素を追加/削除することです。また、構成に応じて表示または非表示にするものもあります。したがって、私にとっては、スクロールバーが早すぎるか遅すぎるかのどちらかで、ここに値をハードコーディングするのは非常に困難です。

子供のコンテンツを表示できない場合に、自分でサイズを計算することなく、コンポーネントにスクロールバーを表示させるために、自分の userControl を構成する方法があるはずです。

ありがとうございました!

4

1 に答える 1

0

パネルのサイズ変更イベントまたはフォームのサイズ変更イベントで AutoScrollMinSize 値を変更できます。そうすれば、固定値にはならず、パネルの子コントロールがパネルの端を超えた場合にスクロールバーが利用可能になります -

private void panel1_Resize(object sender, EventArgs e)
{
    panel1.AutoScrollMinSize = new System.Drawing.Size(panel1.Width, panel1.Height);
}
于 2013-03-21T08:17:20.513 に答える