C# 嵌套DataGridView控件

C# 嵌套DataGridView控件,c#,winforms,datagridview,C#,Winforms,Datagridview,我正在尝试创建一个嵌套的DataGridView控件,其中将有两个始终打开的嵌套级别。它将类似于此页面上的图片:。不同之处在于,每个子测试始终是打开的,用户不必有打开/关闭每个嵌套的方法。此控件将仅用于显示数据,因此无需直接从此控件修改数据(即使用户不会直接修改数据,也可以进行更改) 如果无法使用DataGridView执行此操作,是否有其他控件允许此操作 如果没有人知道另一种方法。我可以,但实施起来会很乏味。一种方法是按顺序添加多个DataGridView控件(N个类别有2N个DataGrid

我正在尝试创建一个嵌套的DataGridView控件,其中将有两个始终打开的嵌套级别。它将类似于此页面上的图片:。不同之处在于,每个子测试始终是打开的,用户不必有打开/关闭每个嵌套的方法。此控件将仅用于显示数据,因此无需直接从此控件修改数据(即使用户不会直接修改数据,也可以进行更改)

如果无法使用DataGridView执行此操作,是否有其他控件允许此操作


如果没有人知道另一种方法。我可以,但实施起来会很乏味。一种方法是按顺序添加多个DataGridView控件(N个类别有2N个DataGridControl)。另一个会用静态控件手动添加所有内容。

我不知道这是否会给出答案,但它可能会让你感到有些尴尬

//button to call function that looks for DatagridView control
private void button2_Click(object sender, EventArgs e)
{
    scanDG(this);
}

private void scanDG(Control parent)
{
    foreach (Control ctrl in parent.Controls)
    {
        if (ctrl.GetType().Name == "DataGridView")
        {//If current Control is Datagridview then set Readonly to true
            ((DataGridView)ctrl).ReadOnly = true;
        }

        //If a control can contain control scan it and look for Datagridview control
        if (ctrl.HasChildren) scanDG(ctrl);
    }
}

我强烈建议使用WPF,而不是winforms。您是希望将datagridview设置为不可编辑,还是希望表单中的所有datagridview都不可编辑?学习如何使用WPF并实现此功能需要多长时间。(我不知道。)为什么不设置Datagridview的只读属性。我不知道只读设置与创建嵌套控件有什么关系。如果有,请告诉我。我只提到了只读以增加替代方法的数量,如果嵌套控件无法完成,则建议解决此问题。