操作の簡単な順序:
- DataGridView の AutoSizeColumnMode プロパティを AllCells に設定します。
- すべての列の幅プロパティに加えて、コントロールの境界線から余分な幅を確保するためのたるみなどを追加します (おそらくプラス 2)。
- DataGridView の Width プロパティを、計算した幅に設定します。
- フォームの幅を DataGridView の幅に設定します。
実際にコーディングするのはあなた次第です。
編集:私は今コンパイラの前にいるので、これをまとめます:
Visual Studio に移動します。新しいプロジェクトを開始します。デザイナーのフォームには何も配置しないでください。このコードを初期化子で使用するだけです。
public Form1()
{
InitializeComponent();
// Create a DataGridView with 5 Columns
// Each column is going to sized at 100 pixels wide which is default
// Once filled, we will resize the form to fit the control
DataGridView dataGridView1 = new DataGridView();
for (int i = 0; i < 5; i++)
{
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
dataGridView1.Columns.Add(col);
}
dataGridView1.Location = new Point(0, 0);
// Add the DataGridView to the form
this.Controls.Add(dataGridView1);
// Step 2:
// Figure out the width of the DataGridView columns
int width = 0;
foreach (DataGridViewColumn col in dataGridView1.Columns)
width += col.Width;
width += dataGridView1.RowHeadersWidth;
// Step 3:
// Change the width of the DataGridView to match the column widths
// I add 2 pixels to account for the control's borders
dataGridView1.Width = width + 2;
// Step 4:
// Now make the form's width equal to the conbtrol's width
// I add 16 to account for the form's boarders
this.Width = dataGridView1.Width + 16;
}
このコードは、DataGridView
5 つの列を持つ を作成し、要求どおりにコントロールとフォームのサイズを変更します。上記で概説した正確な手順に従いました (列にデータがないため、手順 1 を除く)。
このコードは機能します。それで、あなたのものがうまくいかないのなら、あなたが行っている何か他のばかげたことがあるにちがいなく、私はあなたを助けることができません.