|
| |||||||||
| Tags: vb6, vbnet, visual basic 6 |
![]() |
| | Thread Tools | Search this Thread |
|
#1
| |||
| |||
| Numerical value on TextBox
As far as VB6 is concerned, it is easy to force a user to grasp the figure on a TextBox with KeyAscii. My concern is with Vb.net, my textbox should accept that number and not letters or other symbols. I put this code: Code: If Not IsNumeric (textbox1.text) then
MessageBox.Show ("blablabla")
End if |
|
#2
| ||||
| ||||
| Re: Numerical value on TextBox
No direct solution via a property of the TextBox. To create a Numeric Text Box, here is the example code: Code: Public Class NumericTextBox
Inherits TextBox
Private SpaceOK As Boolean = False
' Restricts the entry of characters to digits (including hex),
' the negative sign, the e decimal point, and editing keystrokes (backspace).
Protected Overrides Sub OnKeyPress(ByVal e As KeyPressEventArgs)
MyBase.OnKeyPress(e)
Dim numberFormatInfo As NumberFormatInfo = System.Globalization.CultureInfo.CurrentCulture.NumberFormat
Dim decimalSeparator As String = numberFormatInfo.NumberDecimalSeparator
Dim groupSeparator As String = numberFormatInfo.NumberGroupSeparator
Dim negativeSign As String = numberFormatInfo.NegativeSign
Dim keyInput As String = e.KeyChar.ToString()
If [Char].IsDigit(e.KeyChar) Then
' Digits are OK
ElseIf keyInput.Equals(decimalSeparator) OrElse keyInput.Equals(groupSeparator) OrElse keyInput.Equals(negativeSign) Then
' Decimal separator is OK
ElseIf e.KeyChar = vbBack Then
' Backspace key is OK
' else if ((ModifierKeys & (Keys.Control | Keys.Alt)) != 0)
' {
' // Let the edit control handle control and alt key combinations
' }
ElseIf Me.SpaceOK AndAlso e.KeyChar = " "c Then
Else
' Consume this invalid key and beep.
e.Handled = True
End If
End Sub
Public ReadOnly Property IntValue() As Integer
Get
Return Int32.Parse(Me.Text)
End Get
End Property
Public ReadOnly Property DecimalValue() As Decimal
Get
Return [Decimal].Parse(Me.Text)
End Get
End Property
Public Property AllowSpace() As Boolean
Get
Return Me.SpaceOK
End Get
Set(ByVal value As Boolean)
Me.SpaceOK = value
End Set
End Property
End Class |
|
#3
| |||
| |||
| Re: Numerical value on TextBox
Put this in the keypress event of your textbox: Code: If Asc(0) > Asc(e.KeyChar) Or Asc(9) < Asc(e.KeyChar) Then e.Handled = True Code: If Char.IsDigit(e.KeyChar) Then
e.Handled = False
End If |
|
#4
| ||||
| ||||
| Re: Numerical value on TextBox
Use a mix of char.IsDigit and char.IsControl like this: Code: If Not Char.IsDigit(e.KeyChar) and Not Char.IsControl(e.KeyChar) Then
e.Handled = True
End If |
![]() |
|
| Thread Tools | Search this Thread |
| |
Similar Threads for: "Numerical value on TextBox" | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Excel/VBA: Copying text from UserForm Textbox to a Worksheet Textbox | Neil Ives | Software Development | 2 | 20-08-2010 02:23 AM |
| ProgressBar In TextBox | Level8 | Software Development | 5 | 06-02-2010 08:55 PM |
| Moving from one TextBox to another with TAB | GeforceUser | Software Development | 3 | 05-11-2009 06:31 PM |
| How to recover a value in a textbox | S_Asnodkar | Software Development | 4 | 29-04-2009 04:37 PM |
| Numeric TextBox in VB.NET | Gauresh | Software Development | 0 | 22-12-2008 05:18 PM |