自定义DataGridView返回带有列的对象

时间:2014-03-21 21:55:01

标签: c# winforms datagridview

我想创建自定义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 对象。

1 个答案:

答案 0 :(得分:1)

要使您的控件成为DataGridView类型控件,它必须从DataGridView继承或托管DataGridView控件。

所以看起来像这样:

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

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