C# 自定义DataGridView返回包含列的对象

C# 自定义DataGridView返回包含列的对象,c#,winforms,datagridview,C#,Winforms,Datagridview,我想创建自定义DataViewGrid,其构造函数接受一些参数,并在其类定义中向将装箱的实例添加一些数据 比如说 public partial class DataGridView : Control { //Constructor public DataGridView(string someColumnName) { // Will not compile, that is the questions,

我想创建自定义DataViewGrid,其构造函数接受一些参数,并在其类定义中向将装箱的实例添加一些数据

比如说

    public partial class DataGridView : Control
    {

        //Constructor
        public DataGridView(string someColumnName)
        {
            // Will not compile, that is the questions, 
            // how to access property Columns inside class definition
            this.Columns.Add(someColumnName);
        }
    }


    //On usage side

    //Initializing the grid with already one column
    var customGrid = new DataGridView("Some Column Name");

    //I want to already have object with this column
    customGrid.Columns.add("Some Column Name");

”没有属性。如何在网格的构造函数中添加列?或者如何在内部执行任何其他操作,这是我创建对象后可以执行的操作,在这种情况下是customGrid对象。

要使控件成为DataGridView类型控件,它必须继承自DataGridView或承载DataGridView控件

所以它可能看起来像这样:

public class MyGrid : DataGridView {
  public MyGrid(string columnName, string columnHeader) {
    this.Columns.Add(columnName, columnHeader);
  }
}

但是请注意,如果您尝试在窗体的设计器中使用它,那么这将不起作用-它只适用于无参数构造函数。此自定义控件只能在运行时添加。

在某些win Forms类中使用的构造函数在哪里?@LarsTech。您的表单名为DataGridView?@LarsTech否,网格的名称是这样的。打电话给c'tor的例子可能是以某种形式出现的。我对我所看到的感到困惑。您有一个从DataGridView继承的名为DataGridView的类?