Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Vb.Net] Creare un nuovo controllo TextBox per numeri

    vorrei implementare una TextBox che permetta l'inserimento di soli numeri ma con il seguente codice mi accetta solo numeri interi mentre avrei bisogno anche di inserire numeri decimali... suggerimenti ?

    codice:
    Imports System.Windows.Forms.TextBox
    
    Public Class NumericTextField
    
        Inherits System.Windows.Forms.TextBox
    
        Public Sub NumericTextField_KeyPressed(ByVal sender As Object, ByVal evt As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
    
            If ((Not Char.IsDigit(evt.KeyChar)) And (Not Char.IsControl(evt.KeyChar)) And (Not Char.IsSeparator(evt.KeyChar))) Then
                evt.Handled = True
            End If
    
        End Sub
    
    
    End Class

  2. #2
    Se tu fossi in visual basic faresti così:

    codice:
    Private Sub Text1_Change()
    c = Right(Text1.Text, 1)
    If c = "" Then Exit Sub
    If IsNumeric(c) = False Or c = "," Then
        Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
        Text1.SelStart = Len(Text1.Text)
        Text1.SelLength = 0
    ElseIf Text1.Text = "" Then
    Exit Sub
    End If
    End Sub
    traduci in Vb.Net

    ciao

  3. #3
    in effetti la tua soluzione è diversa da quella che intendevo fare io .... comunque ho risolto così

    codice:
    Imports System.Windows.Forms.TextBox
    
    Public Class NumericTextField
    
        Inherits System.Windows.Forms.TextBox
    
        Public Sub New()
            Me.Text = ""
        End Sub
    
        Public Sub NumericTextField_KeyPressed(ByVal sender As Object, ByVal evt As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress
            Dim app As String
            app = Me.Text & evt.KeyChar.ToString
            If (Not IsNumeric(app) And (Not Char.IsControl(evt.KeyChar))) Then
                evt.Handled = True
            End If
        End Sub
    
    
        Private Sub NumericTextField_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.LostFocus
            If IsNumeric(Me.Text) Then
                Me.Text = CType(Me.Text, Double)
            End If
            Me.SelectionStart = Me.Text.Length
        End Sub
    
    End Class

    grazie mille comunque

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.