ListView ColumnHeader.Name是空字符串

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

我能够重现相同的行为。 我认为它肯定是一个错误,因为它暗示设计师将正确设置该值。

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

我在这里找到了一些讨论 – 看起来这是一个已知的问题,他们也在使用Tag hack。

我有同样的问题,但解决这个问题:

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

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