假设我有一个包含100个文本框,组合框和其他控件的表单,我想检查是否有任何控件是空的。当我点击“确定”按钮时,我希望消息框显示错误列表示例Textbox1为空,Textbox30为空等等。
我可以通过执行繁琐的方法来实现这一点,我会检查textbox1和messagebox,再检查textbox2和messagebox等等。
我希望消息框只显示一次。我怎样才能做到这一点?
我所做的是我设置了一个数组并存储了稍后要显示的所有错误消息(例如Msgbox(errMessages(3)+ Environment.newline + errMessages(30)),我知道这不是正确的做法也是如此。
请提前谢谢你。
答案 0 :(得分:1)
以下是您问题的直接答案:
您可以将空控件存储在列表中,最后创建如下消息:
Dim empty_controls = New List(Of Control)
If TextBox1.Text = String.Empty Then
empty_controls.Add(TextBox1)
End If
If TextBox2.Text = String.Empty Then
empty_controls.Add(TextBox2)
End If
Dim result As String = String.Join(
Environment.NewLine,
empty_controls.Select(Function(c As Control) c.Name + " is empty"))
MessageBox.Show(result)
这是检测哪些文本框为空的更好方法:
Dim empty_controls = New List(Of Control)
//The following line will search through all text boxes on the form
empty_controls.AddRange(
Controls.OfType(Of TextBox).Where(Function(c As Control) c.Text = String.Empty))
//Here you can add other kinds of controls with their own way of determining if they are empty
Dim result As String = String.Join(
Environment.NewLine,
empty_controls.Select(Function(c As Control) c.Name + " is empty"))
MessageBox.Show(result)