如何在Windows窗体应用程序中的DataGridView行中动态添加控件?

时间:2012-07-16 09:40:36

标签: c# .net

我有一个DataGridView,每行中有不同的控件类型现在我想根据控件类型在每一行中创建控件是否可能? 如果是,那么如何?

1 个答案:

答案 0 :(得分:0)

您可以在网格的OnRowDatabound上添加控件,然后可以对行进行控制

要将控件添加到单元格,请使用

void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    GridViewRow row = e.Row as GridViewRow;
    if (row != null)
    {
        MyObject myObject = new MyObject();
        row.Cells[0].Controls.Add(myObject);
    }
}

要将控件添加到整个行,请使用

void GridView_RowDataBound(object sender, GridViewRowEventArgs e)
{
    GridViewRow row = e.Row as GridViewRow;
    if (row != null)
    {
        MyObject myObject = new MyObject();
        row.Controls.Add(myObject);
    }
}

在这里查看Windows窗体网格

您可以通过继承DataGridViewColumn类或其任何派生类来创建自己的列类,以提供自定义外观,行为或托管控件。有关更多信息,请参见如何:通过扩展其行为和外观来自定义Windows窗体DataGridView控件中的单元格和列

http://msdn.microsoft.com/en-us/library/bxt3k60s%28v=vs.80%29.aspx

如何:通过扩展其行为和外观来自定义Windows窗体DataGridView控件中的单元格和列 http://msdn.microsoft.com/en-us/library/7fb61s43%28v=vs.80%29.aspx