【发布时间】:2015-01-11 03:59:08
【问题描述】:
我有多个表单正在调用的全局方法(在一个模块中)。我不知道如何传递/识别调用表单,以便在方法中引用它的控件时识别它:
Public Sub SomeFunction(callingForm As Form)
callingForm.ErrorProvider.SetError(TextBox1, "Faux pas!")
End Sub
Public Sub SomeOtherFunction(callingForm As Form)
SomeFunction(Me)
End Sub
在上面的示例中,我尝试将表单作为参数传递,但有人告诉我:
ErrorProvider 不是 System.Windows.Forms.Form 的成员。
【问题讨论】:
-
调用
Type实际上是Form1或类似的 -Form是所有其他表单继承自的通用基类。出于这个原因,您不应该将类似的内容导出到通用全局处理程序 - 将数据验证留在表单中。无论如何,您最终都会添加一堆代码来解决问题 -
@Plutonix 我在一个模块中有全局方法,它以完全相同的方式在多个表单中验证所有文本框。整合它不是更有意义吗?
-
它究竟验证了什么?我唯一能想到的在所有表格上的所有 TB 中都很常见的是不能为 0 长度。姓名、地址、邮编、州、电话、电子邮件、IP 地址、喜欢的颜色对于真实 DV 的内容都有不同的规则。
-
如果验证函数对所有人都做同样的事情,为什么还需要传递表单参数?
-
@Plutonix 显式是指
someErrorProvider As ErrorProvider之类的东西吗?
标签: vb.net winforms visual-studio methods parameter-passing