C# ListView ColumnHeader。名称为空字符串

C# ListView ColumnHeader。名称为空字符串,c#,listview,C#,Listview,我已经创建了一个WinFormsListView作为包含四列的详细视图。我在设计器中为每个列指定了一个名称,但是,当通过ListView.Columns属性访问每个ColumnHeader时,我发现每个ColumnHeader.name都是空字符串。我是做错了什么,还是这是一个框架错误?我能够重现同样的行为。我认为这肯定是一个bug,因为这意味着设计者将正确设置该值 作为一种解决方法,您也可以将名称放入标记属性中。(或者在构造函数中以编程方式进行设置,但如果以后需要在设计器中添加列,则这将无法正

我已经创建了一个WinForms
ListView
作为包含四列的详细视图。我在设计器中为每个列指定了一个名称,但是,当通过
ListView.Columns
属性访问每个
ColumnHeader
时,我发现每个
ColumnHeader.name
都是空字符串。我是做错了什么,还是这是一个框架错误?

我能够重现同样的行为。我认为这肯定是一个bug,因为这意味着设计者将正确设置该值

作为一种解决方法,您也可以将名称放入标记属性中。(或者在构造函数中以编程方式进行设置,但如果以后需要在设计器中添加列,则这将无法正常工作。我宁愿不使用设计器来初始化列。)


我发现了一些关于这方面的讨论-看起来这是一个已知的问题,他们也在使用标签黑客。

我也遇到了同样的问题,但解决方法如下:

foreach (ColumnHeader CN in listView1.Columns)
{
    //I added listbox for this example, but my code uses it
    //to populate an excell spreadsheet

    listBox1.Items.Add(CN.Text.ToString());

}

希望您能以某种方式使用它。

FixColumnNames函数hack运行良好。令人惊讶的是(?)它在.NET 4.0中没有被修复。但是,OP正在寻找
名称(元素名称本身)而不是
文本(实际上只是一个标题)。