C# 如何在屏幕上发生更改后刷新页面上的组件

C# 如何在屏幕上发生更改后刷新页面上的组件,c#,events,action,tabcontrol,C#,Events,Action,Tabcontrol,我有一个表单,其中包含一个选项卡控件。一个选项卡具有一个用户控件,另一个选项卡具有不同的用户控件。第一个选项卡有一组复选框。根据复选框的选择,另一个选项卡上的组合框将填充不同的数据。问题是,在加载表单时都会加载用户控件,因此组合框的数据已经设置好了。当其他选项卡上的选择更改时,我希望重新加载组合框中的数据。我不知道如何实现这一点,因为我不能直接从一个用户控件调用另一个用户控件中的方法。一位同事建议我调查事件的行动。任何帮助或建议都将不胜感激。您可以使用选项卡上的Enter事件并将刷新代码放入其中

我有一个表单,其中包含一个选项卡控件。一个选项卡具有一个用户控件,另一个选项卡具有不同的用户控件。第一个选项卡有一组复选框。根据复选框的选择,另一个选项卡上的组合框将填充不同的数据。问题是,在加载表单时都会加载用户控件,因此组合框的数据已经设置好了。当其他选项卡上的选择更改时,我希望重新加载组合框中的数据。我不知道如何实现这一点,因为我不能直接从一个用户控件调用另一个用户控件中的方法。一位同事建议我调查事件的行动。任何帮助或建议都将不胜感激。

您可以使用选项卡上的Enter事件并将刷新代码放入其中。此解决方案并不完美,因为只有通过TabControl“输入”页面,页面才会刷新

另一种选择是在每个页面中保留对TabControl的引用,并在数据更新时刷新侦听此数据的页面。

“我不能直接从一个用户控件调用另一个用户控件中的方法。”

是的……但形体可以充当“中间人”。第一个UserControl可以引发第二个UserControl订阅的自定义事件。您可以在Forms Load()事件中手动将其连接起来,因为表单引用了两个用户控件