2010-11-07 207 views
6

我创建了一个WinForms ListView作为Detail视图,并有四列。我已经在设计师的每个专栏中给出了名字,但是当通过ListView.Columns属性访问每个ColumnHeader时,我发现每个ColumnHeader.Name都是空字符串。我做错了什么或者这是一个框架错误?ListView ColumnHeader.Name为空字符串

回答

6

我可以重新创建相同的行为。我认为它肯定是一个错误,因为它暗示着设计者会正确地设置这个值。

作为一种解决方法,您也可以将名称放入Tag属性中。 (或者在构造函数中以编程方式设置它,但是如果您稍后需要在设计器中添加列,那么这将不会很好。然后,我宁愿不使用设计器来初始化列。)

我在这个here上发现了一些讨论 - 看起来这是一个已知的问题,他们也在使用Tag hack。

+0

“FixColumnNames”函数hack工作正常。令人惊讶的是(?)它在.NET 4.0中没有修复。 – Larry 2012-11-06 09:02:51

-1

我有同样的问题,但围绕它的工作是这样的:

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()); 

} 

希望你能以某种方式使用。

+0

为什么downvote? – 2012-09-30 01:19:02

+0

但是,OP正在寻找'Name'(元素命名它自己)而不是'Text'(这实际上只是一个标题)。 – Dwza 2016-02-10 16:28:11