Как сохранить недопустимое значение для NumericUpDown после того, как он потерял фокус?

В моем проекте есть UserControl, который включает в себя NumericUpDown ctrl, и его допустимый диапазон значенийот 10 до 100,

так что если пользователь вводит 200 в NumericUpDown ctrl, то его значение будет автоматически изменено на 100 после изменения фокуса на другой ctrl, это выглядит немного любопытно для клиента, потому что они могут нажать кнопку ОК после ввода 200 в ctrl NumericUpDown, они нужно окно сообщения, которое сообщает им, что значение, которое они вводят, не находится в диапазоне.

Но вопрос в том, что значение для NumericUpDown изменится автоматически после изменения фокуса, если введенное значение выходит за пределы его диапазона.

Так как это реализовать?

Самех Сераг, это код, который я протестировал. Я добавил кнопку в форму, но ничего не сделал. Результат для меня - после того, как я введу 200 и нажму кнопку, отображается только окно сообщения со значением 100. После того, как я введу 200 и нажму клавишу табуляции, он покажет только окно сообщения со значением 200, а текстовое значение в NumericUpDown будет изменено на 100. Так любопытно :-) В любом случае большое спасибо за вашу помощь! Кстати, .NET Framework версия 2.0 с SP2 для меня.

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);
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос