C# RadGridViews事件处理的可视化继承是否可能?

C# RadGridViews事件处理的可视化继承是否可能?,c#,winforms,inheritance,gridview,telerik,C#,Winforms,Inheritance,Gridview,Telerik,我有两个项目: 项目A,由名为BaseUC的用户控件组成,该控件由RadPanel和RadGridView组成(两者的修改器都设置为public) 由从BaseUC继承的Usercontrol组成的项目B (来自班级本身)。项目A作为引用dll包含在项目B中 现在情况是这样的: BaseUC中的两个元素都显示在DerivedUC中 我可以在项目B中编辑RadLabel而不会出现问题(属性) GridView的属性在项目B中显示为灰色 如果我在项目A中将GridView事件实现为虚拟,并在项

我有两个项目:

  • 项目A,由名为BaseUC的用户控件组成,该控件由RadPanel和RadGridView组成(两者的修改器都设置为public)
  • 由从BaseUC继承的Usercontrol组成的项目B (来自班级本身)。项目A作为引用dll包含在项目B中
现在情况是这样的:

  • BaseUC中的两个元素都显示在DerivedUC中
  • 我可以在项目B中编辑RadLabel而不会出现问题(属性)
  • GridView的属性在项目B中显示为灰色
  • 如果我在项目A中将GridView事件实现为虚拟,并在项目B中覆盖它们,那么我会遇到一个问题,即一旦尝试触发事件,就会出现异常。如果我尝试手动将事件添加到项目B中的gridview中,也是一样的
因此,我的问题有两个方面,但归根结底是一个基本问题,即视觉继承的RadGridView是否可以进行事件处理:

  • 如何使RadGridView的属性在项目B的设计视图中可编辑
  • 我如何处理那里的事件

  • 如果这两件事都是可能的话。

    您可以将UserControl中包含的子控件作为公共属性公开,即创建一个返回子控件的公共属性,而不仅仅是将子变量公开。这将使子控件可用于接收事件处理程序并设置公共属性。请注意,这破坏了一个面向对象的规则,即封装……但对于符合要求的某些情况,规则意味着被破坏:)

    UserControl上的控件事件将主要由UserControl使用。表单只能查看/访问您在UserControl中定义和激发的事件。没有足够的细节可以确定,但美国可能也无法接触到B.A事件。例如NumericUpDown或ComboBox,它们是复合控件,但NUD使用它们的事件并触发与NUD相关的新事件(在您的例子中是UC)。