[英]DataGridView - Adding columns without constant horizontal scroll bar update (Winforms)
我有一個 DataGridView,我需要動態添加幾個(比如 20 個)列。 當我這樣做時
foreach (var columnName in ColumnNames)
dataGridView.Columns.Add(columnName, columnName);
每次添加新列時,水平滾動條都會嘗試保持最新。 所以用戶看到奇怪的滾動條在縮小。 添加所有列后,我只需要更新一次水平滾動條。 我該如何做到這一點?
PS我試着這樣做:
((System.ComponentModel.ISupportInitialize)(dataGridView)).BeginInit();
dataGridView.SuspendLayout();
foreach (var columnName in ColumnNames)
{
dataGridView.Columns.Add(columnName, columnName);
}
((System.ComponentModel.ISupportInitialize)(dataGridView)).EndInit();
dataGridView.ResumeLayout(false);
但這沒有幫助。
您可以使用DataGridViewColumnCollection.AddRange 。 這可能有助於更新。
dataGridView.Columns.AddRange(Columns);
給定列名的 AddRange 示例(未經測試但應該可以工作):
// Assuming ColumnNames is a list of column names
DataGridViewColumn[] columns_to_add =
new DataGridViewColumn[ColumnNames.Count];
for(int i = 0; i < ColumnNames.Count; i++)
{
// Add whatever column type you want
columns_to_add[i] = new DataGridViewTextBoxColumn();
columns_to_add[i].HeaderText = ColumnNames[i];
columns_to_add[i].Name = ColumnNames[i];
}
dataGridView.Columns.AddRange(columns_to_add);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.