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

我可以通过执行繁琐的方法来实现此目的,在该方法中,我检查了textbox1和messagebox,再次检查了textbox2和messagebox,依此类推。

我希望消息框仅显示一次。 我该如何实现?

我所做的是,我建立了一个数组并存储了所有错误消息,以供以后选择(例如Msgbox(errMessages(3)+ Environment.newline + errMessages(30))显示,我知道这不是正确的方法也要做到这一点。

请先谢谢你。

===============>>#1 票数: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)

  ask by Student translate from so

未解决问题?本站智能推荐:

1回复

使用MessageDialog弹出UWP-VB错误消息

我在UWP刚起步,所以对我来说很难。 我正在创建一些基本的计算器,以开始了解可以吃些什么。 我遇到了一些小问题,那就是弹出窗口的错误处理。 但是现在我没有MsgBox,没有MessageDialog,但是它是异步的,不能与Error and Resume一起使用...我该如何处理?
1回复

将VB.NET应用程序加速到Excel

我已经在Visual Studio 2015中编写了VB.NET应用程序。(第一次与Visual Basic或VS有任何联系)。 该应用程序获取一个输入的csv文件,对其进行分析,并根据分析将其拆分为2个输出的csv文件。 对于这些输出文件之一,然后需要将每个空白单元格更改为零值。 我的问
1回复

如何在vb.net中更新静态数组

我正在Visual Studio 2105中将VBA6代码转换为VB.net。我的VBA6代码从文件中加载包含行的数组,并将其保留以供重复使用,如下所示: 这很好用; 根据需要,sArr的每个条目中都只有一行,只要需要,我就可以从数组中获取任何一行。 在VB.Net中(使用Vis
1回复

VB.NET MessageBox带有表单标记

我想在VB.NET应用程序中显示一个具有特殊标记的MessageBox。 更具体地说,我想显示一个无序列表。 我尝试通过将文本包装在HTML标记(例如,如果我没有记错的话,Java Swing支持的标记)中并使用<ul>和<li>做到这一点。 这没有用。 我在网上
2回复

VB.net中的MessageBox持久性

我正在使用MessageBox向用户提供一些信息,但是当弹出这样的框时,我希望它阻止对主窗口的访问。 因此,在用户单击“确定”之前,他们应该不能单击(甚至关注)其下方的窗口。 有人知道怎么做这个吗? 我注意到MessageBox具有很少的功能,因此也许我什至必须为此使用其他对象。
4回复

VB.NET-MessageBox,这是一个功能吗?

我一直在研究,但是我希望社区提供一些有关VB.NET中提供的MessageBox class信息。 从我的观点和当前的理解来看,我将MessageBox视为Class ,这主要是因为在VS2010中将其显示为一个类。 我看到我们在此类和属性中有方法。 为什么有许多网站,教程,书籍将此功
3回复

vb.net messagebox是的。没有按钮可以显示其他文本?

以下代码是生成带有两个按钮的消息框的一个很好的示例。 尽管现在这决定了所要提出的问题是答案为是还是否。 如果我想要创建和添加按钮而不是是并且没有按钮示例,该怎么办? 我怎么能实现这样的目标?
1回复

如何在VB.NET中的后台线程上调用MessageBox?

如何调用Invoke在后台线程上运行MessageBox.Show? 当我在单个后台线程上显示MessageBox时,它通常显示在主窗体的后面,因此要使程序可用,我需要将其显示在主窗体的前面。 我当前的代码是没有所有者的MessageBox.Show(myMessageText, m
3回复

VB.Net MessageBox.Show()将我的表单移到后面

我有一个MDI应用程序。 当我使用MessageBox.Show()显示消息框时,当我关闭该消息框时,整个应用程序将消失在所有打开的窗口后面。 该代码没有做任何特别的事情。 实际上,以下是从MDI子窗体中调用消息框的行: Me.BusinessUnitTypeName()是一个
1回复

vb.net消息框的单击行为与输入键不同

净大师 我有以下代码。 如果我单击消息框的“确定”按钮,代码将正常运行,但如果按Enter,它将焦点设置回txtusename,但随后跳转到txtpassword。 有什么想法吗?