Winforms 从类或接口更新表单

Winforms 从类或接口更新表单,winforms,class,interface,controls,Winforms,Class,Interface,Controls,我有一个winform,在它的几个选项卡上有许多控件。我正在编写逻辑,它将根据用户选择的组合框启用/禁用其中一些控件。我猜在frmMain.vb中编写逻辑不是最佳实践,因此我想知道是否应该通过以下方式访问我的表单控件: 接口 通过frmMain.vb中由其他类或 另外 欢迎任何帮助 一般来说,将前端代码绑定到业务逻辑层是一个好主意,这样控制控件启用/禁用的逻辑就是该逻辑。如果可能的话,根据要禁用的内容将控件分组,然后制作一个例程,一次禁用所有控件,并将其命名为disableAddContactI

我有一个winform,在它的几个选项卡上有许多控件。我正在编写逻辑,它将根据用户选择的组合框启用/禁用其中一些控件。我猜在frmMain.vb中编写逻辑不是最佳实践,因此我想知道是否应该通过以下方式访问我的表单控件:

接口 通过frmMain.vb中由其他类或 另外
欢迎任何帮助

一般来说,将前端代码绑定到业务逻辑层是一个好主意,这样控制控件启用/禁用的逻辑就是该逻辑。如果可能的话,根据要禁用的内容将控件分组,然后制作一个例程,一次禁用所有控件,并将其命名为disableAddContactInfoArea或SetAddContactInfoArea Boolean isEnabled。在我看来,例程将放在frmMain.vb中。 要避免的一件事是将每个单独的控件公开给另一个类,除非在这种情况下,这是特定业务流程所需的全部内容,但即使这样,您也应该将其放入例程中,并对其进行命名,以使将来的编辑变得简单和不那么复杂。你的主要目标是管理复杂性——看看史蒂夫·麦康奈尔的书,也许是第7章


理想的做法是在frmMain.vb上有几个公共sub,只做需要做的事情,然后让业务逻辑层在您使用的frmMain instance上调用这些例程

如果控件在窗体上,而用于隐藏和显示控件的组合框也在窗体上,那么为什么在窗体上显示/隐藏控件是一种不好的做法?除非您处理的是在没有用户输入的情况下检索的业务逻辑,然后显示或隐藏控件,否则无需将代码从控件所在的表单移动到另一个类或库,从而使代码更加复杂。我能想到的另一个例子是,如果某个类正在表单上创建控件,那么将显示/隐藏代码移动到新类的位置。