我目前正在研究一个 Winforms 解决方案,其中我有一个包含一个ToolStrip
和一个面板的主窗体。该解决方案旨在作为一种管理工具。该面板充满了用户控件,通常包含输入表单或ListView
某种形式。根据单击的按钮,面板中的用户控件将替换为另一个用户控件。
到现在为止还挺好。现在更棘手的部分是用户可以是一个或多个部门的管理员,如果用户是多个部门的管理员,一些用户控件将显示ComboBox
管理员可以选择管理哪个部门的位置。但是,一些用户控件独立于部门,因此不包含ComboBox
.
ComboBox
现在的问题是,我一直在考虑将其添加到主窗体并让用户控件在实例化时查看选择的部门并相应地填充数据,而不是添加到特定于部门的用户控件。但我的问题是:当用户选择另一个部门时,ComboBox
我将不得不告诉孩子(用户控件)该值已更改。
我的第一个想法是让用户控件 - 在实例化时 - 注册更改事件。但是我似乎无法弄清楚如何开始工作(反过来更容易)。我一直在考虑的另一种方法是在值发生更改时从主窗体调用用户控件中的方法。但是,不能保证存在这种方法,因为并非所有用户控件都需要此功能。
对此有首选/黄金解决方案吗?我错过了什么,或者这只是不好的做法/设计?
提前致谢!