7

我在一个 winform 中有几个文本框和蒙面的 texbox,我需要在继续之前检查它们是否为空、null 或什么都没有。

我大部分的代码都按预期工作,如果有一个空的文本框,我会收到一条消息,告诉用户文本框是空的并且它退出子,但由于某种原因,它没有检查蒙面的文本框。

也许我错了,它正在检查它们,但是由于它们具有掩码,因此它们不被视为空或 null。

非常感谢您帮助检查蒙面的 texbox 是否为空。

这是代码:

Private Sub btnCargarInformacion_Click(sender As System.Object, e As System.EventArgs) Handles btnCargar.Click
    For Each myControl As Control In Me.GroupBox1.Controls
        If TypeOf (myControl) Is TextBox Then
            If myControl.Text.Equals(String.Empty) Then
                MessageBox.Show(String.Format("Please Fill the following Textboxes: {0}", String.Join(",", myControl.Name)))
            End If
            If myControl.Text.Equals(String.Empty) Then
                Exit Sub
            End If
        End If
    Next
    Dim PartePersonalTableApt As New PersonalObraDataSetTableAdapters.PartePersonalTableAdapter
    Dim PersonalObTableApt As New PersonalObraDataSetTableAdapters.PersonalObTableAdapter
    PartePersonalTableApt.ClearBeforeFill = True
    PartePersonalTableApt.FillByFecha(PersonalObraDataSet.PartePersonal, txtDate.Text, txtDepartamento.Text, txtTurno.Text)
    PersonalObTableApt.ClearBeforeFill = True
    PersonalObTableApt.Fillby(PersonalObraDataSet.PersonalOb)
End Sub
4

4 回答 4

4
if textbox.MaskCompleted=True Then
    'they entered something 
else
     ' they didnt enter anything

Endif
于 2017-05-17T15:01:55.163 回答
2

问题是您只TextBox在此行中查找对象:

If TypeOf (myControl) Is TextBox Then

由于MaskedTextBox控件不是从TextBox类继承的,因此您需要单独检查该类型,如下所示:

If (TypeOf (myControl) Is TextBox) Or (TypeOf (myControl) Is MaskedTextBox) Then

但是,由于它们都从TextBoxBase类继承,您可以只检查它:

If TypeOf (myControl) Is TextBoxBase Then
于 2013-07-25T17:40:40.580 回答
1

试试这个:

If TypeOf myControl Is MaskedTextBox Then
        If CType(myControl, MaskedTextBox).Text.Equals(String.Empty) Then
            MessageBox.Show(String.Format("Please Fill the following Textboxes: {0}", String.Join(",", myControl.Name)))
        End If
        If CType(myControl, MaskedTextBox).Text.Equals(String.Empty) Then
            Exit Sub
        End If
End If
于 2013-07-25T21:08:18.210 回答
1

未经测试,但不是检查string.empty,您可以检查 MaskedTextBox 的Mask属性。

If myControl.Text.Equals(myControl.Mask) Then
    MessageBox.Show(String.Format("Please Fill the following Textboxes: {0}", String.Join(",", myControl.Name)))
End If
于 2013-07-25T21:16:53.197 回答