如何检查Masked文本框是否为空?

时间:2013-07-25 17:34:22

标签: vb.net textbox maskedtextbox

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

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

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

我们非常感谢你帮助检查蒙面的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 个答案:

答案 0 :(得分:3)

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

Endif

答案 1 :(得分: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

答案 2 :(得分: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

答案 3 :(得分:1)

未经测试,但您可以针对MaskedTextBox的string.empty属性进行检查,而不是检查Mask

If myControl.Text.Equals(myControl.Mask) Then
    MessageBox.Show(String.Format("Please Fill the following Textboxes: {0}", String.Join(",", myControl.Name)))
End If