How to Right Justify Standard Numbers in a Masked Edit Field (97141)



The information in this article applies to:

  • Microsoft Visual Basic Standard Edition for Windows 3.0
  • Microsoft Visual Basic Professional Edition for Windows 3.0

This article was previously published under Q97141

SUMMARY

The Masked edit control does not provide a method to right justify numbers. Ordinary methods and the Format$ function do not work because the Masked edit control uses the underscore character to represent blanks in the text property. For example, if 300 is entered in a Masked edit field with a mask of #####, the text property would contain "__300" instead of " 300."

However, you can use the technique described in this article to right justify a Masked edit field using a standard number mask and format. This is done in three steps:
  1. Create a string of underscore characters that matches the length of the mask in the Masked edit control.
  2. Concatenate the text entered in the Masked edit control to the end of' the underscore string. This result is a string longer than the mask of the Masked edit control.
  3. Use the Right$ function to remove the extra underscore characters from the beginning of the string.

MORE INFORMATION

The following example demonstrates this process:
  1. Start a new project in Visual Basic. Form1 is created by default.
  2. Add the MSMASKED.VBX control to the project.
  3. Create the following controls on Form1, and assign the indicated properties:
       Default Name   Caption            Mask   Format
       ------------------------------------------------
       MaskedEdit1    (Not applicable)   ####   ####
       Command1       Right Justify
    
    						
  4. Add the following code to the Command1_Click event:
       ' Ensure that the string is not already right-justified.
       If InStr((Len(MaskedEdit1.Text)), MaskedEdit1.Text, "_") =
          Len(MaskedEdit1.Text) Then
    
          ' The first String$ function creates the underscore string. The
          ' Format$ trims the text property of the MaskedEdit control.
          ' Enter the following two lines as one, single line:
          MaskedEdit1.text = Right$(String$(Len(MaskedEdit1.Text), "_") &
             Format$(Val(MaskedEdit1.Text)), Len(MaskedEdit1.Text))
    
       End If
    
    						
  5. Press the F5 key to run the program.
  6. Enter two numbers into the Masked edit field, and click the Right Justify button. Notice that the numbers are right-justified in the field.

Modification Type:MajorLast Reviewed:10/30/2003
Keywords:KB97141