VB.NET需要使用MessageBox

时间:2015-12-03 18:53:24

标签: arrays vb.net error-handling visual-studio-2015 messagebox

假设我有一个包含100个文本框,组合框和其他控件的表单,我想检查是否有任何控件是空的。当我点击“确定”按钮时,我希望消息框显示错误列表示例Textbox1为空,Textbox30为空等等。

我可以通过执行繁琐的方法来实现这一点,我会检查textbox1和messagebox,再检查textbox2和messagebox等等。

我希望消息框只显示一次。我怎样才能做到这一点?

我所做的是我设置了一个数组并存储了稍后要显示的所有错误消息(例如Msgbox(errMessages(3)+ Environment.newline + errMessages(30)),我知道这不是正确的做法也是如此。

请提前谢谢你。

1 个答案:

答案 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)