簡體   English   中英

DataGridView - 添加沒有恆定水平滾動條更新的列(Winforms)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM