在ObjectListView 2.5,SharpDevelop 4.1(Windows7)崩溃设计器中添加列

时间:2012-01-20 18:05:04

标签: c# sharpdevelop objectlistview

使用设计器添加列会使控件崩溃,并显示以下消息:

System.Exception: The control BrightIdeasSoftware.ObjectListView has thrown an unhandled exception in the designer and has been disabled.  
Exception: Unable to cast object of type 'System.Windows.Forms.ColumnHeader' to type 'BrightIdeaSoftware.OLVColumn'

我试过两台不同的笔记本电脑。在两台机器上,它与VS2010配合使用,但在#D

中使设计器崩溃

然后我在linux框中使用VirtualBox重新安装windows7,.net4,sdk和OLV,结果相同。

在Google无法找到有用的信息,所以我感谢您提供的任何帮助。

3 个答案:

答案 0 :(得分:1)

您可以直接进入设计器代码并将列类型从System.Windows.forms.Column更改为新的BrightIdeas.OLVColumn,并确保您的列也是如此声明 - 然后您可以编辑列。< / p>

答案 1 :(得分:0)

这是bug。 SharpDevelop没有使用ObjectListView程序集包含的自定义列集合编辑器。相反,它默认为用于标准System.Windows.Forms.ListView的列集合编辑器。

答案 2 :(得分:0)

我在c#中遇到了同样的问题。我使用SharpDevelop 4.3.3和c#4。我刚刚解决了这一步:

  • 的形式添加对象列表视图(即objectListView1)
  • 直接在表单中添加olvColumns(即olvColumn1,olvColumn2等...),而不使用列编辑器。
  • 在表单的 InitializeComponent 方法中(在表单的构造函数中调用),在初始化olvColumns之后,在代码之后添加对象列表视图和列之间的链接

    [...]
    // 
    // olvColumn4
    // 
    this.olvColumn4.CellPadding = null;

    // after initialization of olvColumns 

    objectListView1.Columns.Add(olvColumn1);
    objectListView1.Columns.Add(olvColumn2);
    objectListView1.Columns.Add(olvColumn3);
    objectListView1.Columns.Add(olvColumn4);

    [...]

完成此操作后,您可以在设计模式下重新打开表单并检查objectlistview列:您将看到您创建了列。