C# 无法在继承的用户控件的设计上修改受保护的控件

C# 无法在继承的用户控件的设计上修改受保护的控件,c#,.net,datagridview,splitcontainer,C#,.net,Datagridview,Splitcontainer,我有两个UserControl,一个继承自另一个 此控件有两个DataGridView,包含在SplitContainer中。在“基本”用户控件中,我为要保护的DataGrid和SplitContainer定义了访问修饰符 在继承的用户控件的设计模式中,我可以修改SplitContainer。然后还可以修改这两个数据网格,因为它们也被定义为受保护的。但是,我不能。它们已锁定,我无法更改它们的任何属性 为什么会发生这种情况?一旦您谈到父/子关系,另一方面,您谈到继承,一个控件从另一个控件继承。这有

我有两个
UserControl
,一个继承自另一个

此控件有两个
DataGridView
,包含在
SplitContainer
中。在“基本”用户控件中,我为要保护的
DataGrid
SplitContainer
定义了访问修饰符

在继承的用户控件的设计模式中,我可以修改
SplitContainer
。然后还可以修改这两个数据网格,因为它们也被定义为受保护的。但是,我不能。它们已锁定,我无法更改它们的任何属性


为什么会发生这种情况?

一旦您谈到父/子关系,另一方面,您谈到继承,一个控件从另一个控件继承。这有点令人困惑。它们是继承还是相互包容?这两种方法都是不可能的,也不是有意的。我使用splitContainer和两个DataGrid创建一个用户控件。然后我将另一个控件定义为第一个控件的继承类,以添加一些我不希望在基本控件中添加的额外功能OK,但这样只会产生一个控件。没有两个控件。设计器无法修改基本控件,这是由设计器设计的。如果您愿意,可以在手动编程中对其进行修改。但更好的方法是,如果您想要两个控件具有共同点,请将公共部分放入第三个控件中。父/子关系是实现这一点的建议方法,而不是继承。