DataGridViewに最大100,000行のテーブルを表示しています。テーブルには大きな文字列を含む1つの列があります。 AutosizeModeを 'AllCells'に設定すると、アプリケーションが必要な幅を計算している間に、アプリケーションが長時間フリーズしてしまうことがわかりました。 妥協点として、自動サイズ調整モードをDisplayedCellsに設定しました。 私は、DataGridのスクロールイベントにメソッドをバインド:C#DataGridView AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells
public void MethodThatBindsDataToTheDatagridview(DataTable table)
{
dataGrid.Source = table;
dataGrid.Columns[1].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
dataGrid.Columns[2].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
}
pubic void DataGridScroll(object sender, ScrollEventArgs e)
{
((DataGridView)sender).Update();
}
私もRefreshメソッドで同じことを試してみました。私の期待は、DataGridは、表示された行に従って列の幅を設定することです。ただし、これは、表がロードされたときに1回だけ発生しますが、スクロール・イベントは列幅の変更をトリガーしません。
dataGrid.AutoResizeColumn(1, DataGridViewAutoSizeColumnMode.DisplayedCells);
dataGrid.AutoResizeColumn(2, DataGridViewAutoSizeColumnMode.DisplayedCells);
問題を解決しました。ありがとう。 – Yoav