1

フォームにマスクされたテキストボックスがあります。1つは給与用、PF&ESI用、もう1つは電話番号用です。次のコードで、マスクされたテキストボックスが空かどうかを確認しようとしています。

Dim mtxt As Control
Dim flag3 As Boolean
flag3 = False
For Each mtxt In EMPGBDATA.Controls
    If TypeOf mtxt Is MaskedTextBox  Then
        If mtxt.Text = "" Then
            mtxt.BackColor = Color.Red
            flag3 = True
        End If
    End If
Next 

給与のPF&ESIマスクテキストボックスのみが赤色で表示されますが、電話番号マスクテキストボックスは赤色で表示されません。

4

1 に答える 1

3

次のような状況だと思います:(おそらくプロパティデザイナーによって定義されています)

 maskedTextBoxPhoneNumber.Mask = "000000 00000"  'Or something similar'
 maskedTextBoxPhoneNumber.TextMaskFormat = MaskFormat.IncludeLiterals 

この場合のテスト

 if mtxt.Text = "" then 

マスクプロパティに含まれるリテラルがプロパティに返されるため、失敗しますText

TextMaskFormatプロパティを次のように変更する必要があります

 maskedTextBoxPhoneNumber.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals

MaskFormat列挙についてはMSDNを参照してください

于 2013-01-09T11:27:37.647 に答える