Skip to main content

Suppression of Leading Zeroes in Numeric Mask Text Box Control

  • February 12, 2020
  • 2 replies
  • 0 views

Alexander Castro

I have a masked text box control on my windows form which I want to use in order to display a SSN to the user. I chose a predefined mask description in the properties windows and it looks as follows: 000-00-0000.

When I move a value that has leading zeroes to my mask text box, however, it drops the leading zeroes. For example, if I move a value of '000001234' to the mask text box, it displays it as follows:  123-4_-____. 

I works well if there are no leading zeroes. If I move the value '123456789'  to the mask text box for example, it displays it correctly as follows: '123-45-6789'. 

2 replies

Chris Glazier
Forum|alt.badge.img+2

I have a masked text box control on my windows form which I want to use in order to display a SSN to the user. I chose a predefined mask description in the properties windows and it looks as follows: 000-00-0000.

When I move a value that has leading zeroes to my mask text box, however, it drops the leading zeroes. For example, if I move a value of '000001234' to the mask text box, it displays it as follows:  123-4_-____. 

I works well if there are no leading zeroes. If I move the value '123456789'  to the mask text box for example, it displays it correctly as follows: '123-45-6789'. 

This is expected behavior if you are moving an actual numeric field or value to the Text property but it should work correctly if this is converted to a string first.

set MaskedTextBox1::Text to "000123456"    *> this will work
set MaskedTextBox1::Text to 000123456       *> this will have the zeroes stripped as it is an integer

Does this work for you?

If you are using a numeric field like pic 9(9) you could move it to a pic x(9) field and then use this as your sending field.


Alexander Castro
  • Author
  • Participating Frequently
  • February 13, 2020

This is expected behavior if you are moving an actual numeric field or value to the Text property but it should work correctly if this is converted to a string first.

set MaskedTextBox1::Text to "000123456"    *> this will work
set MaskedTextBox1::Text to 000123456       *> this will have the zeroes stripped as it is an integer

Does this work for you?

If you are using a numeric field like pic 9(9) you could move it to a pic x(9) field and then use this as your sending field.

Your suggestion worked! I created a temporary field and declared it as follows:

01 TMP-SSN PIC X(09)

I then moved my numeric field into the the temporary field and sent the temporary field to the text box as follows:

MOVE EMPL-SSN TO TMP-SSN

MOVE TMP-SSN TO msk-EMP-SSN::Text

 

Thanks for your help!