3

我是一名 Vb.Net 程序员,不熟悉 C#

在 Vb.Net 中,我使用 AddRange 在 DataGridView 中添加多个列

dim Col1 As DataGridViewTextBoxColumn()
dim Col2 As DataGridViewTextBoxColumn()
    MyDataGridView1.Columns.AddRange({Col1, Col2})

这在 VB.Net 中被接受

在c#中我写过

DataGridViewTextBoxColumn Col1 = New DataGridViewTextBoxColumn();
DataGridViewTextBoxColumn Col2 = New DataGridViewTextBoxColumn(); 

     MyDataGridView1.Columns.AddRange({Col1, Col2});

这在 C# 中不被接受。我错在哪里???

4

4 回答 4

4

DataGridViewColumnCollection.AddRange

参数

类型:System.Windows.Forms.DataGridViewColumn[]

要添加的 DataGridViewColumn 对象数组。

所以,我认为你应该使用;

MyDataGridView1.Columns.AddRange(new[] { Col1, Col2 });

由于您是 C# 新手,我应该解释一下是什么new[]意思?

微软C# 3.0中引入了称为隐式类型数组的概念。有了这个概念,您不必显式定义变量的数据类型,您可以指定编译器应检查数组的元素以确定应应用的类型。

数据类型的初始声明被var关键字替换。

var numbers = new[] {"one", "two", "three"};

构建时,编译器会扫描数组的内容并确定每个项目都是string. 因此,创建一个字符串数组

于 2013-03-28T11:43:15.150 回答
2
DataGridViewTextBoxColumn Col1 = new  DataGridViewTextBoxColumn();
Col1.HeaderText = "test";
DataGridViewTextBoxColumn Col2 = new DataGridViewTextBoxColumn();
Col2.HeaderText = "test2";

MyDataGridView1.Columns.AddRange(new[] {Col1,Col2});

请注意,“新”也是小写的。

于 2013-03-28T11:42:23.987 回答
1

“New”关键字需要小写。

除此之外,前缀{ Col1, Col2 }如下:

MyDataGridView1.Columns.AddRange(new[] { Col1, Col2 });

此外,如果数组类型为 ,Resharper 会发出警告DataGridViewTextBoxColumn,因此您可能希望将数组类型与参数类型显式匹配,如下所示:

MyDataGridView1.Columns.AddRange(new DataGridViewColumn[] { Col1, Col2 });
于 2013-03-28T11:41:27.987 回答
0

试试这个:

MyDataGridView1.Columns.AddRange(new DataGridViewColumn[] { Col1, Col2 });

希望这可以帮助。

于 2013-03-28T11:45:17.087 回答