Article ID: 126676
Article Last Modified on 2/24/2005
Default Name Mask Format PromptChar ------------------------------------------------- MaskedEdit1 #####.## $####0.00 (Space) MaskedEdit2 #####.## $####0.00 (Space)
Sub MaskedEdit1_GotFocus ()
maskededit1.SelStart = 0
maskededit1.SelLength = Len(maskededit1)
End Sub
Sub MaskedEdit1_KeyPress (keyascii As Integer)
Call Masked_Key_Press(MaskedEdit1, keyascii)
If keyascii = 13 Then SendKeys "{tab}"
End Sub
Sub MaskedEdit2_GotFocus ()
maskededit2.SelStart = 0
maskededit2.SelLength = Len(MaskedEdit2)
End Sub
Sub MaskedEdit2_KeyPress (keyascii As Integer)
Call Masked_Key_Press(MaskedEdit2, keyascii)
If keyascii = 13 Then SendKeys "{tab}"
End Sub
Sub Masked_Key_Press (MskEdit As MaskEdBox, keyascii As Integer)
' Calculate the location of the decimal point in the mask:
mask_cents_pos = InStr(MskEdit.Mask, ".")
mask_dollars = mask_cents_pos - 1
' Check for period keypress:
If keyascii = 46 And MskEdit.SelStart < 6 Then
tlen = MskEdit.SelStart + 1 ' Store current location.
MskEdit.SelStart = 0
MskEdit.SelLength = tlen ' Highlight up to the current
tempo = MskEdit.SelText ' position & save selected text.
MskEdit.SelLength = mask_dollars
MskEdit.SelText = "" ' Clear to the left of decimal.
MskEdit.SelStart = mask_cents_pos - tlen
MskEdit.SelLength = tlen ' Reposition caret
MskEdit.SelText = tempo ' and paste copied data.
MskEdit.SelStart = mask_cents_pos ' Position caret after cents.
End If
End Sub
Keywords: kbhowto KB126676