2013-01-09 134 views
1

我的表单中有Masked Text Boxes。一个是工资,PF & ESI和其他用于电话号码。我尝试检查屏蔽文本框是否为空或没有以下代码。只有检查屏蔽文本框是否为空VB.NET

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蒙面文本框以红色显示,而电话号码蒙面文本框是不显示红色。

+1

顺便说一句,这两个'mtxt'和'flag3'是真正可怕的名字。请使用有意义的名称和正确的缩进来使您的代码可读。此外,在使用它们之前不要声明你的变量。 –

回答

3

我认为你有以下情况:(由酒店设计者可能会定义)

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

在这种情况下,你的

if mtxt.Text = "" then 

测试将失败,因为该文本包含在掩码属性在房产中归还Text

您应该将房产TextMaskFormat更改为

maskedTextBoxPhoneNumber.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals 

See MSDN for MaskFormat Enumeration

+0

thnx Steave ..富文本框怎么样..是否有可能以相同的方式? – Thanzeem

+0

RichTextBox实际上是一个不同的控件。多行,RTF文本,块格式和其他更复杂的属性。没有掩码或TextMaskFormat。所以如果不知道你的意图,我真的不能提供任何有用的提示。 – Steve

+0

朋友..我的意思是有没有机会检查富文本框是空的,如果它的背面颜色显示红色与我给出的问题上面给出的相同的代码。 – Thanzeem