Vb.net 如何向嵌套的私有对象添加事件处理程序(或类似函数)

Vb.net 如何向嵌套的私有对象添加事件处理程序(或类似函数),vb.net,winforms,Vb.net,Winforms,我正在VB.Net中的一个项目中工作,该项目使用各种动态创建的面板,这些面板具有动态创建的表单元素,这些元素随着屏幕大小的调整而动态调整大小。为了避免为所有类似元素占用数千行重复代码,我创建了以下设置: Public Class PanelComponents Dim componentsList As New List(Of PanelComponent) 'Methods etc here Private MustInherit Class PanelCompon

我正在VB.Net中的一个项目中工作,该项目使用各种动态创建的面板,这些面板具有动态创建的表单元素,这些元素随着屏幕大小的调整而动态调整大小。为了避免为所有类似元素占用数千行重复代码,我创建了以下设置:

Public Class PanelComponents

    Dim componentsList As New List(Of PanelComponent)
    'Methods etc here

    Private MustInherit Class PanelComponent
        'Method data here
    End Class

    Private Class ComboBoxComponent
        Inherits PanelComponent
        'Method data here
    End Class

    'More Children of PanelComponent

End Class
在大多数情况下,这对我的程序的执行来说都是非常好的,但是我现在遇到了一个障碍。在我现在正在处理的程序中,我希望能够在
PanelComponents
类之外向其中一个
ComboBoxComponent
对象添加事件。我希望这样,当用户更改组合框的选定索引时,它会触发一个方法,该方法根据选择的更改修改一些代码变量


但是,由于my
ComboBoxComponent
是嵌套在my
PanelComponents
类中的私有类,因此我不确定如何将事件处理程序添加到或(或如何为
Handles
调用引用它)。

在面板中定义事件。处理组合框的事件,并在处理程序中引发面板的事件。然后在面板外订阅面板的活动。@RezaAghaei你们能详细说明一下吗?我有一个评论,但删除了它。我才意识到一切都是私人的,我很困惑。这实际上是如何使用的?@djv要使用它,每次我尝试向屏幕添加新组件时,我都会调用一个
AddComponent
方法,该方法会将一个新组件(指定类型)添加到
componentsList
。到目前为止,每个组件都需要相同类型的方法(调整大小、调整填充等),所以这对我来说很好。然而,我觉得我的设计可能实际上是我的问题,我可能需要重新构建它:\@djv为了扩展一点,我之所以创建自己的
PanelComponent
类是因为每个文本框或组合框,或者我需要的任何东西,都需要有一个标签。所以我想我应该把它们两个作为一个单独的物体包装在一起,这样可以省去一些麻烦。