画面・グラフィック
- DataGridViewカラム幅調節
DataGridViewコントロールにはAutoResizeColumnsというメソッドが用意されており、データの内容に応じて簡単にカラム幅を調節することが出来ます。これを呼び出すことでユーザーにとって見やすい表を提供することが出来ます。
また、
dataGridView1.AutoSizeColumnsMode = true;
とすることで自動的にカラム幅を調節してくれるようになりますが、これは使わないようにしています。データを更新するたびにカラム幅調節作業が行われますので、データ数が多くなるとどんどん重くなってきます。データの更新処理が全て終了してからAutoResizeColumns()メソッドを呼び出すようにします。
public partial class FormGrid : Form
{
public FormGrid()
{
InitializeComponent();
}
private void FormGrid_Load( object sender, EventArgs e )
{
// これは使わない
// dataGridView1.AutoSizeColumnsMode = true;
DataTable dataTable = new DataTable();
dataTable.Columns.Add( new DataColumn( "IntData", typeof( int ) ) );
dataTable.Columns.Add( new DataColumn( "StringData", typeof( string ) ) );
for( int i = 0; i < 10; i++ )
{
DataRow row = dataTable.NewRow();
row[ "IntData" ] = i;
row[ "StringData" ] = Guid.NewGuid().ToString();
dataTable.Rows.Add( row );
}
dataGridView1.DataSource = dataTable;
// ユーザーが見やすいように行を縞々にする。
dataGridView1.AlternatingRowsDefaultCellStyle = new DataGridViewCellStyle();
dataGridView1.AlternatingRowsDefaultCellStyle.BackColor = Color.LightCyan;
// データの挿入処理
// ...................
// データの挿入が終わったらカラム幅を調節する。
dataGridView1.AutoResizeColumns();
}
}
実行結果。カラム幅がデータに合わせて調整されている。