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