以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  判断窗口文本框多个内容为空  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=160660)

--  作者:362491397
--  发布时间:2021/2/10 10:36:00
--  判断窗口文本框多个内容为空
想实现判断窗口1个以上的文本框内容是否为空,只要任何一个文本框内容为空就弹出对话框,有没有精简的代码,我编的代码如下,请大神们指导一下!

With Forms("入库单").Controls("ComboBox6") 
 If .Value Is Nothing Then
        Messagebox.Show("入库单无内容,无法打印","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
     Else
        With Forms("入库单").Controls("ComboBox5") 
        If .Value Is Nothing Then
        Messagebox.Show("入库单无内容,无法打印!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
     Else
         With Forms("入库单").Controls("ComboBox1") 
        If .Value Is Nothing Then
        Messagebox.Show("入库单无内容,无法打印","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
With Forms("入库单").Controls("TextBox4") 
 If .Value Is Nothing Then
        Messagebox.Show("入库单无内容,无法打印","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)


--  作者:有点蓝
--  发布时间:2021/2/16 10:53:00
--  
给控件命名有规律的名称,比如所有需要判断非空的控件加上某个前缀,以及有意义的名称,如:no_编号、no_姓名、no_日期、......

For Each c As WinForm.Control In e.Form.Controls
    If c.name.StartsWith("no_") Then
        Dim t = c
        If  t.Text = "" Then
            Messagebox.Show(t.name.split("_")(1) & "无内容,无法打印","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            t.Select()
            Return
        End If
    End If
Next