I want to format the contents of my textbox while typing.
I know that I can do this in LostFocus
event, but I want it to be done while I am typing. Does anyone have any suggestions on how to implement this?
相关问题
- Carriage Return (ASCII chr 13) is missing from tex
- Generic Generics in Managed C++
- How to Debug/Register a Permanent WMI Event Which
- 'System.Threading.ThreadAbortException' in
- Bulk update SQL Server C#
Rather than trying to rig this up yourself, consider using a control that's specifically designed to handle formatted input. Specifically, you need the
MaskedTextBox
control, which is an enhanced version of the existing textbox that allows you to set a "mask" used to distinguish between valid and invalid input. The user even gets visual feedback as they type.You'll need to set the
Mask
property to tell the control how you want its contents to be formatted. All of the possible values are shown in the linked documentation. To display money, you would use something like:$999,999.00
, which represents a currency value in the range of 0 to 999999. The neat part is that the currency, thousandth, and decimal characters are automatically replaced at run-time with their culture-specific equivalents, making it much easier to write international software.Dim strCurrency As String = "" Dim acceptableKey As Boolean = False
Private Sub TextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles TextBox1.KeyDown If (e.KeyCode >= Keys.D0 And e.KeyCode <= Keys.D9) OrElse (e.KeyCode >= Keys.NumPad0 And e.KeyCode <= Keys.NumPad9) OrElse e.KeyCode = Keys.Back Then acceptableKey = True Else acceptableKey = False End If End Sub
e.Handled = True End Sub
@stynx