1

単一の DGV がフォームの中央にスナップされたフォームがあります。

DGV 内のフィールドの合計幅に応じて、DGV に対応するためにフォームの幅を (最大制限まで) 自動的に調整するように設定することは可能ですか?

この投稿と同様の方法論を使用する必要がありますか?それとも、コントロール プロパティを使用して「すぐに使える」可能性はありますか?

4

2 に答える 2

1

編集:

public Form1()
{
    InitializeComponent();

    dataGridView1.AutoSize = true;
    dataGridView1.SizeChanged += new EventHandler(dataGridView1_SizeChanged);
    dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells;
}

void dataGridView1_SizeChanged(object sender, EventArgs e)
{
    Width = dataGridView1.Width + 10;
}
于 2012-05-14T16:33:59.993 に答える
0

'AutoSizeColumnsMode'および'AutoSizeRowsMo​​de'プロパティを'AllCells'に設定することにより、DataGridViewをその内容に合うサイズに設定できます。

dataGridView.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.AllCells
dataGridView.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells

ここから、コントロールのサイズでフォームのサイズを設定することにより、DataGridViewに合うようにフォームのサイズを変更できます。

this.Height = dataGridView.Height;
this.Width = dataGridView.Width;

したがって、「ColumnWidthChanged」イベントを処理することで(幅のみを気にするため)、コンテンツがDataGridViewに追加または削除されたかどうかを確認し、そのハンドラーでフォームのサイズ変更を行うことができると思います。

于 2012-05-14T16:31:51.727 に答える