BUG: MaskedEdit MaxLength Reset to 64 When Mask=""
ID: Q99873
|
The information in this article applies to:
-
Microsoft Visual Basic Professional Edition for Windows, versions 2.0, 3.0
SYMPTOMS
When the Mask property of the MaskedEdit custom control is set to two
quotation marks (""), the MaxLength property is incorrectly reset to
64. However, the control continues to correctly limit input based on the
original MaxLength setting, and you can change the value of MaxLength to
establish a different maximum text limit for the control.
WORKAROUND
To work around the problem, store the MaxLength property before setting
the Mask property of the MasedEdit custom control. Then reset the
MaxLength setting after setting the Mask property.
For example, replace the code shown in the Command2_Click event procedure
in step 3 of the More Information section below with this code:
Sub Command2_Click ()
Dim ml As Integer
'Store the current MaxLength property value
ml = maskededit1.MaxLength
maskededit1.Mask = ""
maskededit1.Text = ""
'Restore the MaxLength property value since
'it has incorrectly been reset to 64
maskededit1.MaxLength = ml
End Sub
STATUS
Microsoft has confirmed this to be a bug in the Microsoft products listed
at the beginning of this article. We are researching this problem and will
post new information here in the Microsoft Knowledge Base as it becomes
available.
MORE INFORMATION
If you set the mask property to "" at run time the MaxLength property is
incorrectly set to 64, but the amount of text you can enter is still
limited by the original MaxLength setting.
Steps to Reproduce Problem
- Start Visual Basic or from the File menu, choose New Project (ALT, F, N)
if Visual Basic is already running. Form1 is created by default.
- Add three Command buttons (Command1, Command2, and Command3) to Form1.
- Add the following code to your program in the appropriate places:
Sub Command1_Click ()
Debug.Print "MaskedEdit1.maxlength", maskededit1.MaxLength
Debug.Print "Text length", Len(maskededit1.Text)
End Sub
Sub Command2_Click ()
maskededit1.Mask = ""
maskededit1.Text = ""
End Sub
Sub Command3_Click ()
Debug.Print "MaxLength set to 10"
maskededit1.MaxLength = 10
End Sub
- From the Run menu, choose start (ALT, R, S), or press F5.
- From the Window menu, choose debug (ALT, W, D) or press CTRL+B. The
Debug Window will be displayed.
- Click Command1. You will see the current Maxlength value of 64 and the
current text length of 0 displayed in the Debug Window.
- Click Command3 to set MaxLength to 10. This is verified in the Debug
Window. Type text into the MaskedEdit1 control. Notice that you are
allowed to enter a maximum of 10 characters.
- Click Command1. The Debug Window shows that Maxlength is set to 10. The
current text length will reflect the number of characters you typed into
the MaskedEdit1 Control.
- Click Command2. This sets the mask property to "", and clears the text
in the MaskedEdit1 control.
- Click Command1 to see that the Maxlength property is now incorrectly
set to 64. Type text into the MaskedEdit1 control, and note that you
allowed to enter a maximum of 10 characters.
Additional query words:
buglist2.00 buglist3.00 2.00 3.00
Keywords :
Version : WINDOWS:2.0,3.0
Platform : WINDOWS
Issue type :