Как проверить, пуст ли Маскированное текстовое поле?
У меня есть несколько текстовых полей и замаскированных текстовых полей в 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