• Viernes 1 de Noviembre de 2024, 15:38

Autor Tema:  Permitir solo un punto en un TextBox  (Leído 2791 veces)

lugarda

  • Miembro activo
  • **
  • Mensajes: 52
  • Nacionalidad: co
    • Ver Perfil
Permitir solo un punto en un TextBox
« en: Miércoles 23 de Junio de 2010, 17:36 »
0
Hola a todos, estoy progamando en C#, tengo un textbox  que solo acepta numeros, el backspace y el punto, con el siguiente método. Sin embargo tengo aun un problema y es que  no he logrado validar que solo acepte un punto. Alguno de ustedes me puede dar alguna idea, se los agradezco muchisimo.
Código: C#
  1.  
  2. private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
  3.         {
  4.             validaNumeroPunto(e);
  5.         }
  6.  
  7.         public void validaNumeroPunto(KeyPressEventArgs en)
  8.         {
  9.             if (!char.IsDigit(en.KeyChar) && en.KeyChar != (char)Keys.Back && en.KeyChar != 46)
  10.                 en.Handled = true;
  11.         }
  12.  
  13.  

Newtek

  • Miembro activo
  • **
  • Mensajes: 81
  • Nacionalidad: cr
    • Ver Perfil
    • http://www.newtekwebhosting.com.com?id=000231
Re: Permitir solo un punto en un TextBox
« Respuesta #1 en: Jueves 24 de Junio de 2010, 16:35 »
0
hay algo que se llama Patterns. Entonces lo que tienes que pensar es que el texbox siempre tiene que tener como esto... NNNNN.NN donde "N" representa los numeros.

Ahora bien como se usan los Patterns.

Bueno primero tienes que ustar una clase que se llama Regex y otra que compare que se llama Match

entonces seria algo como esto.

Código: Visual Basic
  1. Dim r as Regex
  2. Dim m as Match
  3.  
  4. r = New Regex ("Aqui pones el patter que quieres analizar")
  5. 'Este link tiene todos los patterns que puedes usar.
  6. 'http://msdn.microsoft.com/en-us/library/az24scfc.aspx
  7.  
  8. m= r.Match (elvalor que tiene el texbox va aqui.)
  9.  
  10. While m.success
  11.     'haces lo que tengas que hacer aqui... ya sea asignarlo a otra variabla o lo que sea...
  12.     m = m.NextMatch()
  13. end While
  14.  


Bueno Suerte

Me avisas si te puedo ayudar en algo.


Carlos Cor.
Web Hosting, Design, Development & SEO at Crystaltech