Foros del Web » Programación » .NET »

validar números en c#

Estas en el tema de validar números en c# en el foro de .NET en Foros del Web. hola amigos, estoy haciendo un programa, uso c#,tengo 2 textbox y me gustaria que los datos de entrada en un textbox sean números y en ...
  #1 (permalink)  
Antiguo 18/08/2006, 03:12
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 8 años, 4 meses
Puntos: 0
Pregunta validar números reales en c#

hola amigos, estoy haciendo un programa, uso c#,tengo 2 textbox y me gustaria que los datos de entrada en un textbox sean números y en el otro sean letras.
Estoy usando el visual studio 2005 express edition.
saludos

Última edición por jamner; 28/08/2006 a las 02:47
  #2 (permalink)  
Antiguo 18/08/2006, 05:29
 
Fecha de Ingreso: diciembre-2002
Mensajes: 129
Antigüedad: 12 años
Puntos: 0
Que es exactamente lo que quieres, que no puedan introducir mas que numeros o que una vez introducido valide que es un numero?
Si es lo segundo mira esto:
http://www.bdiez.com/spanish/expresiones_regulares.htm
Es decir, las expresiones regulares son la solucion.
Si no es lo que querias, dilo y vere si puedo ayudarte.
  #3 (permalink)  
Antiguo 18/08/2006, 15:13
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 8 años, 4 meses
Puntos: 0
holas, lo que tengo es un par de textbox y quiero que en el primero el usuario puda meter solo números y el "." para decimal y se pueda usa el backspace para borrar numeros.
en el otro es parecido pero para letras.

el codigo para poder ingresar solo números en visual basic.net 2005 es:

Private Sub txtN1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtN1.KeyPress

If (Asc(e.KeyChar) < 48 And Asc(e.KeyChar) <> 8) Or Asc(e.KeyChar) > 57 Then
MessageBox.Show("Sólo se permiten Números")
e.Handled = True

End If
End Sub

Lo que quiero es algo parecido pero para visual c# 2005. Le agradecería su ayuda...saludos
  #4 (permalink)  
Antiguo 18/08/2006, 23:07
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 10 años, 9 meses
Puntos: 76
Puedes usar esto:

private void txtUsuario_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsNumber(e.KeyChar))
{
e.Handled = false;
}
if (Char.IsLetter(e.KeyChar))
{
e.Handled = true;
}

}

El codigo va en el evento KeyPress de los textbox que desees validar. Y tiene otras validaciones que te pueden servir
Char.IsDigit
Char.IsLetterOrDigit
Char.IsPunctuation
Char.IsSymbol

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #5 (permalink)  
Antiguo 28/08/2006, 02:43
 
Fecha de Ingreso: agosto-2006
Mensajes: 4
Antigüedad: 8 años, 4 meses
Puntos: 0
validar números reales en c#

hola johnwilliams, gracias por la respuesta, el código que me diste funciona, pero me priva de usar el backspace y tambien puedo ingresar signos como / * - +, aunque haciendo una pequeña correcion se arregla lo segundo.

El siguiente codigo es muy bueno para ingresar solo numeros, en este caso trabajamos con codigo ascii, tambien está habilitado el backspace, para borrar. Al trabajar con ascii podemos habilitar y deshabilitar cualquiera caracter que queramos.


private void txtN1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (((e.KeyChar) < 48 && e.KeyChar != 8) || e.KeyChar > 57 ){
MessageBox.Show("Sólo se permiten Números");
e.Handled = true;
}
}


Bueno el problema surge cuando quiero trabajar con números reales, es decir necesitare la coma, podemos habilitar la coma decimal con el ascci:


private void txtN1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (((e.KeyChar) < 48 && e.KeyChar != 8 && e.KeyChar !=44) || e.KeyChar > 57 ){
MessageBox.Show("Sólo se permiten Números");
e.Handled = true;
}
}


ahora esta habilitada la "," y podemos trabajar con reales, el problema surge por k el usuario va a poder ingresar mas de una "," en un textbox. Quisiera que alguien me ayude a que sólo se pueda ingresar una "," y que no sea en el primer espacio del textbox.
Gracias
saludos
  #6 (permalink)  
Antiguo 05/09/2006, 15:52
Avatar de .seb  
Fecha de Ingreso: marzo-2006
Ubicación: Uruguay
Mensajes: 493
Antigüedad: 8 años, 8 meses
Puntos: 1
Cita:
Iniciado por warlock Ver Mensaje
Es decir, las expresiones regulares son la solucion.
warlock tiene razon
__________________
saludos
seba
http://sgomez.blogspot.com
  #7 (permalink)  
Antiguo 19/09/2006, 17:15
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 8 años, 3 meses
Puntos: 0
Posible solución

Si no querés utilizar expresiones regulares,
te puede servir esta solución:

Private Sub TextBoxCódigoColegioProfesional_KeyPress( _
ByVal sender As Object, _
ByVal e _
As System.Windows.Forms.KeyPressEventArgs) _
Handles TextBoxCódigoColegioProfesional.KeyPress

If ( _
(Asc(e.KeyChar) < 48) And (Asc(e.KeyChar) <> 8) _
) _
Or (Asc(e.KeyChar) > 57) _
Then
Dim l_SeparadorDecimal As String = "."
If (e.KeyChar = l_SeparadorDecimal) _
And (0 <> _
InStr(Me.TextBoxCódigoColegioProfesional.Text, _
l_SeparadorDecimal, CompareMethod.Binary)) _
Then
MsgBox("Sólo se permiten Números")
e.Handled = True
End If
End If
End Sub

OJO.- Si el separador decimal de tu máquina es "," cambiá el valor de la variable "l_SeparadorDecimal". Lo que pasa es que, hasta salir del evento "KeyPress", el nuevo separador decimal no pasa a formar parte del "TextBox"; por eso, valido que no exista un separador decimal previo. Esta validación la usé en una de mis aplicaciones.
Ojalá te sirva de algo.
  #8 (permalink)  
Antiguo 04/10/2006, 11:17
 
Fecha de Ingreso: septiembre-2006
Mensajes: 4
Antigüedad: 8 años, 3 meses
Puntos: 0
Perdón, doy fé de erratas, el código vedadero, era este:
Private Sub TextBoxCódigoColegioProfesional_KeyPress( _
ByVal eventSender As System.Object, _
ByVal e _
As System.Windows.Forms.KeyPressEventArgs) _
Handles TextBoxCódigoColegioProfesional.KeyPress

If ( _
(Asc(e.KeyChar) < 48) _
And (Asc(es.KeyChar) <> 8) _
) _
Or (Asc(e.KeyChar) > 57) _
Then
e.Handled = True

Dim l_SeparadorDecimal As String = "."

If (e.KeyChar = l_SeparadorDecimal) _
And (0 = _
InStr(Me.TextBoxCódigoColegioProfesional.Text, _
l_SeparadorDecimal, CompareMethod.Binary) _
) _
Then
e.Handled = False
End If
End If

End Sub

Copié mal mi ejemplo, éste es el correcto
  #9 (permalink)  
Antiguo 04/07/2008, 12:47
 
Fecha de Ingreso: julio-2008
Mensajes: 2
Antigüedad: 6 años, 5 meses
Puntos: 0
Respuesta: validar números en c#

panitas... necesito ayuda d su parte.... tgo una amiga q me pidio ayuda sobre un proyecto q tiene en la uni... yo c programar pero solo en pascal... (c q es anticuado pero toi aprendiendo ) y a ella le mndaron un proyecto en c... porfa me podrian ayudar?? el proyecto dice lo sig:

Realice un programa en C que realice las siguientes funciones:

• Validación de número: La función debe devolver si un número es válido o no.
El número puede ser un real, con el formato ####.##

• Validación de una fecha: La función debe devolver si la fecha es válida o no.
La fecha debe ser del siguiente formato dd/mm/aaaa (día/mes/año).
Para estas funciones debe tener en cuenta los siguientes conceptos a investigar:

• Funciones en Lenguaje C

• Arreglos unidimensionales.

Nota:
• Para almacenar tanto los valores numéricos como la fecha utilice un arreglo(array).

• El programa debe mostrar tres opciones:

1. Valida Fecha (dd/mm/yyyy)

2. Validar Número

3. Salir

• El programa se debe repetir hasta que se seleccione la opción 3.


• El programa debe guiar al usuario en todo el proceso.


porfa si me peden ayudar.. es para antes d el domingo 6 d julio!! porfa men ayudenmeee!!!
  #10 (permalink)  
Antiguo 30/05/2010, 20:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: validar números en c#

Hola Soy nuevo en el foro y en C# xD
kiero saver como Validar numeros en C#
aver si alguien me hecha la mano con esto, no es muy complejo solo esto miren

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Validar_o_Falso
{
class Program
{
static void Main(string[] args)
{
int x;
Console.WriteLine("Ingresa un numero:");
do
{
x = int.Parse(Console.ReadLine());

}while( // aki no se ke va =/ );
}
}
}
Estoy en modo Aplicacion de Consola, sale ps los dejo y espero su respuesta =)
Saludos a todos
  #11 (permalink)  
Antiguo 30/05/2010, 20:57
 
Fecha de Ingreso: mayo-2010
Mensajes: 2
Antigüedad: 4 años, 6 meses
Puntos: 0
Respuesta: validar números en c#

por sierto utilizo Visual Studio 2008 modo Aplicacion de Consola
  #12 (permalink)  
Antiguo 30/12/2010, 08:25
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 5 años, 8 meses
Puntos: 0
Sonrisa Respuesta: validar números en c#

Yo utilizo esta función que hice...
Espero que les sirva.

private bool EsNumero(string cadena)
{
//Sencillamente, si se logra hacer la conversión, entonces es número
try
{
decimal resp = Convert.ToDecimal(cadena);
return true;
}
catch //caso contrario, es falso.
{
return false;
}

}
  #13 (permalink)  
Antiguo 27/01/2012, 12:34
 
Fecha de Ingreso: noviembre-2004
Ubicación: Medellín
Mensajes: 121
Antigüedad: 10 años, 1 mes
Puntos: 1
Respuesta: validar números en c#

Así podés pasar al otro textbox usando enter
private void texCedula_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsLetter(e.KeyChar))
{
e.Handled = false;
MessageBox.Show("Sólo se permiten Números");
texCedula.Clear();
}
else if (e.KeyChar == (char)Keys.Enter)
{
e.Handled = true;
butCancelar.Enabled = true;
texCedula.Enabled = false;
texNombres.Enabled = true;
texNombres.Focus();
}
}
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 3 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:20.
SEO by vBSEO 3.3.2