1

我有一段类似下面的代码。我正在使用 Microsoft Visual C# Express Edition。我的问题是我无法在设计时向 DataGridView 添加列,它是另一个类的成员。这是我的代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ClassLibrary1
{
    public class Class1 : Panel
    {
        DataGridView mView;

        public Class1()
        {
        mView = new DataGridView();
        this.Controls.Add(mView);
        }

        public DataGridView View
        {
            get { return mView; }
            set { mView = value; }
        }
    }
}

当我单击三个虚线按钮在属性窗口中添加新列时,我在设计时得到 System.NullException。由于我的声誉,我无法发布屏幕截图。

感谢帮助!

4

1 回答 1

1

我只是更深入地研究你的问题。不幸的是,我能够重现所描述的问题。在用户控件中对 DataGridView 进行了一些研究后,我翻阅了以下帖子

似乎没有对继承的 DataGridView 的视觉支持- 并且 - 也不支持使用 DataGridView 的 userControls。你也可以看看这篇文章

我尝试使用以下继承的 DataGridView 类 - 但都没有奏效。我很抱歉没有合适的解决方案 - 但我希望这对你有用。

/// tried this attribute - did not work
/// [Designer(typeof (System.Windows.Forms.Design.ControlDesigner))]

/// this did not work either
[Editor("System.Windows.Forms.Design.DataGridViewComponentEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(ComponentEditor))]
[Designer("System.Windows.Forms.Design.DataGridViewDesigner, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")]
public class ucInheritedDataGridView : DataGridView { }
于 2011-10-30T21:27:58.787 回答