我环顾四周,似乎找不到一种简单的方法来引用 IF 语句等内容中的多个控件,或者为多个控件设置属性等。(IF 存在 = true!)
“快捷方式”(如果您愿意的话);最好用非法代码来描述,例如:
Public Sub BreakCompiler()
if string.IsNullOrEmpty(Textbox1.text, textbox2.text, textbox3.text) Then .....
'As opposed to
If String.IsNullOrEmpty(PartNumTextBox.Text) Or _
String.IsNullOrEmpty(PartNameTextBox.Text) Or _
String.IsNullOrEmpty(PartGRNTextBox.Text) Or_
String.IsNullOrEmpty(SerialNumTextBox.Text) Then
'Warn user
Else
'do nofin.
End If
或者更奇怪:
WITH Textbox1.text, textbox2.text, textbox3.text
.ReadOnly = true
END WITH
End sub
这个想法是为了防止运行 3 个 if 语句,或者其他什么,基本上对 3 个不同的对象做同样的事情......等等......等等。类似于可以用 ' 分隔的多个事件的处理程序,'。
我知道循环遍历控件(例如 groupbox.controls 中的每个控件的 IE),但这并不能完全实现我在这里所追求的目标。 (假设您想跳过几个?)
只是想检查一下集体智慧。
最佳答案
据我所知,if 语句中没有任何类似于控件属性处理程序的内容。
您要么必须单独执行它们(或将它们全部添加到一个数组中),要么如您所提到的,遍历另一个控件中的子集。
但是,您可以做的一件事(假设您只想更改某种类型的控件)是:
For Each tb As TextBox In Me.Controls.OfType(Of TextBox)
'do stuff here
Next
另一个选择是创建一个 Sub
来为您进行更改,然后将每个更改传递到 Sub 中。
Private Sub changeTextBox(tBox as TextBox)
'make changes here
End Sub
关于vb.net - 引用多个控件的最有效方法。 IE : the multi-WITH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37859072/