Как проверить, пуст ли Маскированное текстовое поле?
У меня есть несколько текстовых полей и замаскированных текстовых полей в winform, которые мне нужно проверить, пусты ли они, null или ничего, прежде чем продолжить.
код, который у меня есть по большей части, работает по назначению, если есть пустое текстовое поле, я получаю сообщение, сообщающее пользователю, что текстовое поле пусто, и оно выходит из суб, но по какой-то причине не проверяет замаскированные текстовые поля.
может быть, я ошибаюсь, и он проверяет их, но поскольку у них есть Маска, они не считается пустым или нулевым.
ваша помощь с проверкой, если маскированные текстовые поля пусты, будет очень признательна.
этот код:
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 ответов
проблема в том, что вы только ищете 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
попробуйте это:
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
непроверенный, но вместо проверки против 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