0
dataGridView
(grdBandControl)のデータソースは毎秒更新されます。DataWindowのために更新されたデータソースを除くColumnWidthChangedイベント
更新するたびにgrdBandControl_ColumnWidthChanged
が発生します。
カラムヘッダーのサイズを視覚的に変更し、関連する変数に格納することで、カラムのサイズを手動で変更したいと考えています。
どのように私はgrdBandControl_ColumnWidthChanged
がどちらか発射される区別することができますので、
class ColumnNameWidth
{
public string ColumnName { get; set; }
public int ColumnWidth { get; set; }
}
List<ColumnNameWidth> ColumnNameWidths = new List<ColumnNameWidth>();
void grdBandControl_DataSourceUpdate()
{
//some dataTable from Db i.e.
grdBandControl.DataSource = dataTable;
foreach (var columnNameWidth in ColumnNameWidths)
{
grdBandControl.Columns[columnNameWidth.ColumnName].Width = columnNameWidth.ColumnWidth;
}
}
private void grdBandControl_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
{
foreach (DataGridViewColumn col in grdBandControl.Columns)
{
var columnNameWidth = ColumnNameWidths.FirstOrDefault(x => x.ColumnName == col.Name);
if (columnNameWidth != null)
columnNameWidth.ColumnWidth = col.Width;
else
ColumnNameWidths.Add(new ColumnNameWidth
{
ColumnName = col.Name,
ColumnWidth = col.Width
});
}
}