Como manter o valor inválido para NumericUpDown depois que ele perde o foco?
No meu projeto, há um UserControl que inclui uma ctrl NumericUpDown e seu intervalo de valores válido éde 10 a 100,
portanto, se o usuário inserir 200 na ctrl do NumericUpDown, seu valor será alterado automaticamente para 100 depois que o foco for alterado para outra ctrl, parecerá um pouco curioso para o cliente, porque eles podem clicar no botão OK após a entrada 200 na ctrl do NumericUpDown, eles precisa de uma caixa de mensagem que informe o valor digitado não está no intervalo.
Mas a questão é que o valor para NumericUpDown será alterado automaticamente depois que o foco for alterado se a entrada de valor estiver fora do intervalo.
Então, como implementar isso?
Sameh Serag, este é o código que eu testei. Eu adicionei um botão no formulário, mas não fiz nada. O resultado para mim é que depois de inserir 200 e clicar no botão, apenas uma caixa de mensagens com o valor 100 é exibida. Depois de inserir 200 e pressionar a tecla tab, ele exibirá apenas uma caixa de mensagens com o valor 200 e o valor do texto em NumericUpDown será alterado para 100. Tão curioso :-) De qualquer forma, muito obrigado pela sua ajuda! BTW, a versão do framework .Net é 2.0 com sp2 para mim.
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);
}
}