フォームのサイズをコンテンツに合わせて自動的に変更するにはどうすればよいでしょうか? 質問する

フォームのサイズをコンテンツに合わせて自動的に変更するにはどうすればよいでしょうか? 質問する

次の動作を実装しようとしています:

フォームにはタブコントロールがあります。そのタブコントロールにはツリービューがあります。スクロールバーが表示されないようにするには、フォームが初めて表示されるときにツリービューの内容に応じてサイズを変更するようにします。

ツリービューのノードが多すぎてフォームのデフォルト サイズに表示できない場合は、ツリービューに垂直スクロール バーが表示されないようにフォームのサイズを変更する必要があります (画面のサイズで許可される最大サイズまで)。

私が知りたいのは、コントロールのプロパティを通じてこの動作を実現できるかどうかです。要素のサイズをプログラムで計算して設定することで実現できると確信していますが、AutoSizeMode などの設定でこれを実現する方法があるかどうかを知りたいです。

[アップデート]

これは、私のアプリケーションのユーザーが最初に見るダイアログです。これは、作業するデータベースを選択するためのダイアログです。これは、タブ コントロール、ボタンなどを含むデータベースのリストです。リストが長すぎるとスクロール バーが表示されますが、同僚はスクロール バーを非表示にしたいと考えています。

ベストアンサー1

AutoSize および AutoSizeMode プロパティを使用します。

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.autosize.aspx

例:

private void Form1_Load(object sender, EventArgs e)
{
    // no smaller than design time size
    this.MinimumSize = new System.Drawing.Size(this.Width, this.Height);

    // no larger than screen size
    this.MaximumSize = new System.Drawing.Size(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, (int)System.Windows.SystemParameters.PrimaryScreenHeight);

    this.AutoSize = true;
    this.AutoSizeMode = AutoSizeMode.GrowAndShrink;

    // rest of your code here...
}

おすすめ記事