En mi proyecto no es un control de usuario que incluye un ctrl NumericUpDown, y su rango de valores válidos es de 10 a 100,¿Cómo mantener el valor no válido para NumericUpDown después de que pierde el foco?
por lo que si las entradas de usuario 200 en NumericUpDown ctrl, entonces su valor será cambiado a 100 automáticamente después de el foco cambió a otro ctrl, parece un poco curioso para el cliente, porque pueden hacer clic en el botón Aceptar después de ingresar 200 en el ctrl NumericUpDown, necesitan un cuadro de mensaje que les diga que el valor que ingresaron no está en el rango.
Pero la pregunta es si el valor de NumericUpDown cambiará automáticamente después de que el foco haya cambiado si la entrada del valor está fuera de su rango.
Entonces, ¿cómo implementar esto?
Sameh Serag, este es el código que he probado. He agregado un botón en el formulario pero no hice nada. El resultado para mí es después de ingresar 200 y hacer clic en el botón, solo se muestra un cuadro de mensaje con el valor 100. Después de ingresar 200 y presionar la tecla de tabulación, solo se mostrará un cuadro de mensaje con el valor 200 y el valor del texto en NumericUpDown se cambiará a 100. Tan curioso :-) De todos modos muchas gracias por su ayuda! Por cierto, la versión .Net framework es 2.0 con sp2 para mí.
public partial class Form1 : Form
{
private TextBox txt;
public Form1()
{
InitializeComponent();
txt = (TextBox)numericUpDown1.Controls[1];
txt.Validating += new CancelEventHandler(txt_Validating);
}
void txt_Validating(object sender, CancelEventArgs e)
{
MessageBox.Show(txt.Text);
}
}
No creo que esto es posible, pero 1 porque es un problema que he alcanzado en el pasado también. Terminé cambiando a cuadros de texto antiguos. –
+1 a Matt.Los controles NumericUpDown son los controles más desagradables que se hayan concebido. Nunca he visto a un usuario haciendo clic en esos pequeños botones o usando las teclas de flecha. Simplemente escriben. Y que Dios te ayude si estás en una tableta. – Josh
@Carlos_Liu: Actualicé mi respuesta a continuación después de su modificación a la pregunta. Por cierto: funcionó para mí en todos los escenarios que describiste arriba. Pruébalo y cuéntanos los resultados ;-) –