MaskTextBox

09/01/2008 - 23:33 por Clara | Informe spam
Hola,
estoy intentando usar el MaskTextBox con una mascara para fechas 00/00/0000
He encontrado este código en MSDN para hacer la validación:

private void Form1_Load(object sender, EventArgs e)
{
maskedTextBox1.ValidatingType = typeof(System.DateTime);
maskedTextBox1.TypeValidationCompleted += new
TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted);
}
public void maskedTextBox1_TypeValidationCompleted(object sender,
TypeValidationEventArgs e)
{
if (!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Invalid Date Value";
toolTip1.Show("We're sorry, but the value you entered is not a valid
date. Please change the value.", maskedTextBox1, 5000);
e.Cancel = true;
}
}

Pero ahora no sé como hacer para que me acepte el valor si lo dejo en
blanco.
O sea, si empiezo a teclear la fecha, es imposible salir del control si al
final decido dejarla en blanco.

Como se haria?
Gracias
 

Leer las respuestas

#1 Luis Miguel Blanco
10/01/2008 - 09:37 | Informe spam
Hola Clara

Una posible solución podría ser comprobar, dentro del método de validación,
que el control está vacío, y en caso afirmativo sales del mismo. Algo
parecido al siguiente bloque de código.

//-
public void maskedTextBox1_TypeValidationCompleted(object sender,
TypeValidationEventArgs e)
{
if (this.maskedTextBox1.Text.Length == 0)
{
return;
}

if (!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Invalid Date Value";
toolTip1.Show("We're sorry, but the value you entered is not a valid
date. Please change the value.", maskedTextBox1, 5000);
e.Cancel = true;
}
}
//-

Espero que te sea de utilidad.

Un saludo
Luis Miguel Blanco
http://www.dotnetmania.com
http://geeks.ms/blogs/lmblanco/


"Clara" wrote:

Hola,
estoy intentando usar el MaskTextBox con una mascara para fechas 00/00/0000
He encontrado este código en MSDN para hacer la validación:

private void Form1_Load(object sender, EventArgs e)
{
maskedTextBox1.ValidatingType = typeof(System.DateTime);
maskedTextBox1.TypeValidationCompleted += new
TypeValidationEventHandler(maskedTextBox1_TypeValidationCompleted);
}
public void maskedTextBox1_TypeValidationCompleted(object sender,
TypeValidationEventArgs e)
{
if (!e.IsValidInput)
{
toolTip1.ToolTipTitle = "Invalid Date Value";
toolTip1.Show("We're sorry, but the value you entered is not a valid
date. Please change the value.", maskedTextBox1, 5000);
e.Cancel = true;
}
}

Pero ahora no sé como hacer para que me acepte el valor si lo dejo en
blanco.
O sea, si empiezo a teclear la fecha, es imposible salir del control si al
final decido dejarla en blanco.

Como se haria?
Gracias



Preguntas similares