Как отменить событие numericupdown_valuechanged? - PullRequest
0 голосов
/ 04 января 2019

Вот мой код.Я пытаюсь создать DateTime, используя числовые вверх-вниз.Я получаю исключение

System.ArgumentOutOfRangeException: значение '1/3/0001 12:00:00 AM' недопустимо для значения 'Value'.Значение должно быть между MinDate и MaxDate.Имя параметра: Значение '

Я пытался использовать событие проверки для числового вверх-вниз, но тогда оно не запускается.

 public DateTime ToDateTime(DateTime referencetime = default(DateTime))
    {
        if (referencetime == default(DateTime)) referencetime = DateTime.Now;
        DateTime returntime = referencetime;
        try
        {
            returntime = new DateTime(
                !Year.IsRelative ? Year.Value : referencetime.Year,
                !Month.IsRelative ? Month.Value : referencetime.Month,
                !Day.IsRelative ? Day.Value : referencetime.Day,
                !Hour.IsRelative ? Hour.Value : referencetime.Hour,
                !Minute.IsRelative ? Minute.Value : referencetime.Minute,
                !Second.IsRelative ? Second.Value : referencetime.Second
            );

            if (Year.IsRelative)
                returntime = returntime.AddYears(Year.Value);
            if (Month.IsRelative)
                returntime = returntime.AddMonths(Month.Value);
            if (Day.IsRelative)
                returntime = returntime.AddDays(Day.Value);
            if (Hour.IsRelative)
                returntime = returntime.AddHours(Hour.Value);
            if (Minute.IsRelative)
                returntime = returntime.AddMinutes(Minute.Value);
            if (Second.IsRelative)
                returntime = returntime.AddSeconds(Second.Value);
        }
        catch (Exception e) { }

DateTime.cs Дизайн

Я хочу отменить событие value_changed для outofRange результатов исключения.Как мне это сделать?

1 Ответ

0 голосов
/ 04 января 2019

Вы можете установить Mininum и Maximum свойства элемента управления NumericUpDown как в окне свойств, так и программно, чтобы избежать нежелательного диапазона.

Также вы можете использовать Validating событие, чтобы отменить или установить любое другое значение для элемента управления.Я использовал это событие для преобразования десятичного значения в int (пользователь может ввести любое десятичное значение в пределах диапазона).См. Полный рабочий проект здесь .

Пожалуйста, дайте мне знать, если у вас есть дополнительные вопросы по этому вопросу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...