Dynamically enter numeric values in Maskedit control

Posted on 1998-11-22
Medium Priority
Last Modified: 2012-06-21
I am using a Maskedit box that can accept only numeric values. The Maskedit box has got two decimal places. At runtime when i enter values , firstly the maskedit box does not right align the numbers, cuz there is not such align property for it. Secondly if the numbers are entered one by one, they remain the same on the screen and do not get formatted. Like for eg, if the mask is "___.__" and i enter "2_2.__" the lostfocus shows the same "2_2.__" even if hideselection is false.

Is there a way first to dynamically start entering numbers from the right most side of the maskedit box and second how do i backspace the numbers i.e if i delete any numerals. I have written function to convert "2_2.__" to "022.00" in the lostfocus. Any Help?
Question by:ravicha

Expert Comment

ID: 1446165
Maskedit boxes are usually not very versatile...you could try to simulate your own using a regular edit box...do your validation in the change event, and update the position of the insertion point accordingly.

Expert Comment

ID: 1446166
I agree with scrapdog..try setting up a normal text box..I personaly use the keypress event..since then you can stop invalid input. Don't for get to leave at least backspace, return and delete keycodes enabled.

Accepted Solution

myqlG earned 300 total points
ID: 1446167
everyone is right so far.
use a text box and on lostfocus use the format command to make
it all work
You can also enter only text by using something like this in
the keypress event:
If IsNumeric(Chr(KeyAscii)) = False And KeyAscii <> vbKeyBack And KeyAscii <> vbKeyDelete And KeyAscii <> vbKeyReturn Then KeyAscii = 0
If KeyAscii = vbKeyReturn Then
KeyAscii = 0
Call keybd_event(9, 0, 0, 0): Call keybd_event(9, 0, 2, 0)
End If
(I cut and pasted this so dont ask about keybd_event)
I use that instead of sendkeys because of a known sendkeys/numlock error.

Featured Post

Keep up with what's happening at Experts Exchange!

Sign up to receive Decoded, a new monthly digest with product updates, feature release info, continuing education opportunities, and more.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
Get people started with the process of using Access VBA to control Outlook using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Microsoft Outlook. Using automation, an Access applic…
Get people started with the utilization of class modules. Class modules can be a powerful tool in Microsoft Access. They allow you to create self-contained objects that encapsulate functionality. They can easily hide the complexity of a process from…

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question