A very handy advanced control provided by Visual Basic 2005 is the
MaskedTextBox control. A Masked Text Box
only allows data to be entered if it matches a particular pattern. For example, you might provide a telephone mask, if the user enters
6175551212, the mask will render the input as
The mask can block invalid characters (such as the % sign) and can signal to the user what is expected (e.g., the parentheses indicate that an area code is required).
To see this at work, return to
frmSuppliers and delete the
txtPhone text box. Drag into its place a
MaskedTextBox control, and name it
mtbPhone. Click on its smart tag and click the Set Mask link, bringing up the Input Mask dialog that allows you to pick one of the existing masks for your control, as shown in Figure 3-11.
Figure 3-11. Input Mask dialog
While it is possible to create a custom mask, in this case, the Phone number mask is just what you want. The mask itself is shown at the bottom of the dialog, and you have a chance to "try" the mask before accepting it. Click OK to accept the mask.
What you want, however, is a
MaskedTextBox that is bound to your data. There are many ways to accomplish this, but the easiest is to drag one from the Suppliers table.
Delete the MaskedTextBox on your form and its associated label, and open the Data Source View (Data → Show Data ...