【发布时间】:2022-10-21 02:09:58
【问题描述】:
我的父表单中有许多用户控件实例。现在,当我单击父表单中的按钮时,我希望所有用户控件都以类似的方式进行更改。我希望每个控件都监听父窗体中的事件,并在父窗体中的事件引发后进行更改,而不是循环遍历我的用户控件并告诉每个控件该做什么。 就像红绿灯一样:当它们变绿时,每辆车都会启动。我不必告诉每个司机开始驾驶。 这可能吗?
【问题讨论】:
-
恐怕你已经找到答案了,再看一遍标题。
-
我不知道如何在技术上做到这一点。据我了解,用户控件必须监听主窗体事件,实例也是如此。您能否提供一个代码 sn-p 如何做到这一点?
-
您不需要为此举办活动。表单中的所有控件都包含在 Controls 集合中,请参见 InitializeComponent 函数中的代码,您可以在那里看到控件是如何创建、配置和附加到控件集合的。基于此,您可以简单地迭代此集合并识别您的“用户控件”,并在单击表单上的按钮时对它们执行任何操作
-
UserControl 有一个ParentForm 属性。获取到父窗体后,就可以获取到按钮,然后就可以监听按钮的OnClick事件了。
-
“当他们进入绿色时,每辆车都会启动”- 不,司机启动汽车。所以,你需要司机