Изменение значения DateTimePicker не вызывает событие изменения значения - Winforms - PullRequest
2 голосов
/ 02 ноября 2010

Я столкнулся со странной ситуацией с элементом управления DateTimePicker. У меня есть элемент управления DateTimePicker с коротким форматом даты.

Я устанавливаю значение этого элемента управления в текстовом поле следующим образом:

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
    {
      textBox1.Text = dateTimePicker1.Value.ToShortDateString();
    }

Теперь, когда я пытаюсь изменить месяц, который является первым разделом в элементе управления, если я ввожу две цифры, запускается событие ValueChanged, иначе нет.

Скажем, например, я пытаюсь ввести 6-й месяц и нажимаю 6 на клавиатуре, на этот раз событие ValueChanged не срабатывает. Но когда я нажимаю 0 и 6, запускается это событие. Если я введу 11 или 12, это вызовет событие ValueChanged. То же самое относится и к разделу даты.

Короче говоря, он не вызывает событие ValueChanged при вводе одной цифры в разделе «Дата или месяц», но запускается при вводе двух цифр. Кто-нибудь может сказать мне, почему он так себя ведет? Ожидается ли поведение DTP?

Как заставить это событие сработать, даже если я введу одну цифру?

1 Ответ

1 голос
/ 02 ноября 2010

Для согласованности и простоты поле принимает 2 цифры, поэтому следует дождаться ввода обоих для запуска события.Если он сработает, когда вы введете 1 для обозначения января, даже если он не знает, что вы могли бы ввести другую цифру для октября (0), ноября (1) или декабря (2)

Я ожидаю, если вы введете 6 иоткладывание события вызывает событие.

Хотя вы можете быть в состоянии сделать что-то для события TextChanged, которое должно сработать, если вы наберете одну цифру, хотя я не уверен, что это будет работать при использовании мыши длявыберите дату (лучше всего проверить, что, как я помню некоторое время назад, у меня были проблемы с ней, не стреляя)

...