Вот пример метода, который программно добавляет два дополнительных столбца в представление сетки:
private void AddColumnsProgrammatically()
{
// I created these columns at function scope but if you want to access
// easily from other parts of your class, just move them to class scope.
// E.g. Declare them outside of the function...
var col3 = new DataGridViewTextBoxColumn();
var col4 = new DataGridViewCheckBoxColumn();
col3.HeaderText = "Column3";
col3.Name = "Column3";
col4.HeaderText = "Column4";
col4.Name = "Column4";
dataGridView1.Columns.AddRange(new DataGridViewColumn[] {col3,col4});
}
Отличный способ выяснить, как выполнить этот вид процесса, - создать форму, добавить представление сетки.контролировать и добавить несколько столбцов.(Этот процесс на самом деле будет работать для ЛЮБОГО вида управления формой. Вся реализация и инициализация происходит в Designer.) Затем проверьте файл Designer.cs формы, чтобы увидеть, как происходит построение.(Visual Studio делает все программно, но скрывает это в конструкторе форм.)
Для этого примера я создал два столбца для представления с именами Column1 и Column2, а затем искал в Form1.Designer.cs для Column1, чтобы увидеть везде, где это былоссылки.Следующая информация - это то, что я почерпнул и скопировал и изменил для динамического создания еще двух столбцов:
// Note that this info scattered throughout the designer but can easily collected.
System.Windows.Forms.DataGridViewTextBoxColumn Column1;
System.Windows.Forms.DataGridViewCheckBoxColumn Column2;
this.Column1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Column2 = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Column1,
this.Column2});
this.Column1.HeaderText = "Column1";
this.Column1.Name = "Column1";
this.Column2.HeaderText = "Column2";
this.Column2.Name = "Column2";