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,但这样只会产生一个控件。没有两个控件。设计器无法修改基本控件,这是由设计器设计的。如果您愿意,可以在手动编程中对其进行修改。但更好的方法是,如果您想要两个控件具有共同点,请将公共部分放入第三个控件中。父/子关系是实现这一点的建议方法,而不是继承。