Solved

Dynamically enter numeric values in Maskedit control

Posted on 1998-11-22
3
592 Views
Last Modified: 2012-06-21
Hi,
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?
0
Comment
Question by:ravicha
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
3 Comments
 
LVL 5

Expert Comment

by:scrapdog
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.
0
 
LVL 1

Expert Comment

by:wford
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.
0
 
LVL 3

Accepted Solution

by:
myqlG earned 100 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.
0

Featured Post

Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

The debugging module of the VB 6 IDE can be accessed by way of the Debug menu item. That menu item can normally be found in the IDE's main menu line as shown in this picture.   There is also a companion Debug Toolbar that looks like the followin…
This article describes how to use a set of graphical playing cards to create a Draw Poker game in Excel or VB6.
Get people started with the process of using Access VBA to control Excel using automation, Microsoft Access can control other applications. An example is the ability to programmatically talk to Excel. Using automation, an Access application can laun…
Show developers how to use a criteria form to limit the data that appears on an Access report. It is a common requirement that users can specify the criteria for a report at runtime. The easiest way to accomplish this is using a criteria form that a…

691 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