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

本文关键字:对象 DataGridView 返回 自定义 | 更新日期: 2023-09-27 17:51:19

我想创建自定义的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");

'this'没有属性Columns。如何在网格的构造函数中添加列?或者如何在里面做任何其他操作,我可以在创建对象之后做,这里是customGrid object

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

要使控件成为DataGridView类型的控件,它必须要么继承DataGridView,要么宿主一个DataGridView控件。

可以是这样的

public class MyGrid : DataGridView {
  public MyGrid(string columnName, string columnHeader) {
    this.Columns.Add(columnName, columnHeader);
  }
}
但请注意,如果您试图在表单的设计器中使用它,这将不起作用-它只适用于无参数构造函数。此自定义控件只能在运行时添加。