在ObjectListView.repack.Core3 v.2.9.3中添加列时出现错误

问题描述 投票:0回答:1

在ObjectListView.repack.Core3 v.2.9.3中添加列时出现错误

System.InvalidCastException:无法将“System.Windows.Forms.ColumnHeader”类型的对象转换为“BrightIdeasSoftware.OLVColumn”类型。

我可以通过指定 BrihgtIdeasSoftware 命名空间来手动添加列。但如何正确做呢?

c# objectlistview
1个回答
0
投票

这似乎是.NET设计器的兼容性问题。使用 .Net Framework 时,GUI 提供了一个自定义列集合编辑器,它可以正确添加

OLVColumn
而不是
ColumnHeader
。该列还应添加到 AllColumns 集合中。

设计师代码:

        objectListView1 = new ObjectListView();
        columnHeader1 = new ColumnHeader();
        ((System.ComponentModel.ISupportInitialize)objectListView1).BeginInit();
        SuspendLayout();

        objectListView1.Columns.AddRange(new ColumnHeader[] { columnHeader1 });
        objectListView1.View = View.Details;

        private BrightIdeasSoftware.ObjectListView objectListView1;
        private ColumnHeader columnHeader1;

OLVColumn 派生自 ColumnHeader。固定版本如下所示:

        objectListView1 = new ObjectListView();
        columnHeader1 = new OLVColumn(); // fixed
        ((System.ComponentModel.ISupportInitialize)objectListView1).BeginInit();
        SuspendLayout();

        objectListView1.AllColumns.Add(this.columnHeader1); // added
        objectListView1.Columns.AddRange(new ColumnHeader[] { columnHeader1 });
        objectListView1.View = View.Details;

        private BrightIdeasSoftware.ObjectListView objectListView1;
        private OLVColumn columnHeader1; // fixed

随后使用默认列编辑器,对 OLVColumn 属性进行更改即可。

© www.soinside.com 2019 - 2024. All rights reserved.