Go Back   TechArena Community > Software > Software Development
Become a Member!
Forgot your username/password?
Tags Active Topics RSS Search Mark Forums Read

Reply
 
Thread Tools Search this Thread
  #1  
Old 29-10-2009
Member
 
Join Date: Aug 2009
Posts: 76
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
This is perfect but this is not what I want to do. Even if the user clicks on a letter, the latter will not be written and no message should appear.
Reply With Quote
  #2  
Old 29-10-2009
Member
 
Join Date: May 2008
Posts: 685
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
Reply With Quote
  #3  
Old 29-10-2009
Member
 
Join Date: Nov 2008
Posts: 1,054
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
Or you can also put this for simplicity:

Code:
If Char.IsDigit(e.KeyChar) Then
            e.Handled = False
End If
Reply With Quote
  #4  
Old 29-10-2009
Member
 
Join Date: Apr 2008
Posts: 2,001
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
Reply With Quote
Reply

  TechArena Community > Software > Software Development
Tags: , ,



Thread Tools Search this Thread
Search this Thread:

Advanced Search


Similar Threads for: "Numerical value on TextBox"
Thread Thread Starter Forum Replies Last Post
Banking Exams Tips and tricks for Reasoning and Numerical Aptitude Questions. Suryavansham Education Career and Job Discussions 9 08-04-2012 11:57 AM
Excel/VBA: Copying text from UserForm Textbox to a Worksheet Textbox Neil Ives Software Development 2 20-08-2010 01:23 AM
ProgressBar In TextBox Level8 Software Development 5 06-02-2010 08:55 PM
Textbox validation in ASP.NET Kasper Software Development 4 19-01-2010 08:28 PM
Moving from one TextBox to another with TAB GeforceUser Software Development 3 05-11-2009 06:31 PM


All times are GMT +5.5. The time now is 04:08 AM.