Элемент управления datetimepicker

Какое событие должно быть запущено, когда пользователь выбирает какую-либо дату в DateTimePickerControl? Я использовал dateTimePicker1_ValueChanged () . Но он срабатывает даже тогда, когда пользователь прокручивает время выбора даты.

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

2 ответа

Взгляните на документацию MSDN. Особенно событие OnValueChanged

Вам нужно будет подключить свой контроль с помощью этого события:

В методе конструктора:

dateTimePickerControl.ValueChanged += new EventHandler(picker_ValueChanged);

И вот подпись метода:

void f_ValueChanged(object sender, EventArgs e)
{
    //Do whatever you need when the value changes here
}

Вы также можете сделать это от дизайнера. Если вы перейдете в Свойства, а затем в раздел События, в нем перечислены все события. Просто дважды щелкните, и он создаст подпись метода и проводку для вас.

ОБНОВЛЕНИЕ К ВАШЕМУ ОБНОВЛЕНИЮ

Если вы специально хотите проверить, является ли это программным изменением или нет, то вы хотите сделать что-то вроде этого:

Создайте глобальную переменную в вашем классе

     Boolean isProgrammaticEvent = false;

Перед вашим программным изменением:

  isProgrammaticEvent = true;
//Change picker value

В вашем случае проводка:

 void f_ValueChanged(object sender, EventArgs e)
  {
    Boolean isThisProgrammatic = isProgrammaticEvent;
    isProgrammaticEvent = false;
    if(isThisProgrammatic)
        return;
  }

Попробуйте MouseCaptureChanged (). Он не будет срабатывать при прокрутке

private void dateTimePicker1_MouseCaptureChanged(object sender, EventArgs e)
        {
            DateTime result = dateTimePicker1.Value;
            MessageBox.Show(result.ToString());

        }
Другие вопросы по тегам