Создание модального окна с помощью выбора даты в C # - PullRequest
0 голосов
/ 28 января 2011

У меня есть приложение на C #, в котором выполняется функция, требующая даты.В первоначальной спецификации говорилось, что текущую дату можно использовать всегда, но теперь я должен разрешить пользователю изменять дату по требованию.

Проблема в том, что эта операция выполняется полностью в фоновом режиме.Есть только пункт меню, по которому пользователь щелкает, чтобы начать процесс.Поэтому я хотел добавить, когда пользователь щелкает пункт меню, модальное окно, которое запрашивает у пользователя дату для использования и возвращает введенную дату.Я не смог найти способ сделать это.

Нужно ли мне создавать форму, в которой есть только один элемент - DatePicker - и создавать ее так, чтобы она выглядела как модальное окно?Или существует класс модальных окон, который делает именно это?

1 Ответ

2 голосов
/ 28 января 2011

Не думаю, что в фреймворк встроено модальное окно.

Вам нужно будет создать новую форму окон.Поместите на нее указатель даты.Сделайте его модификатор общедоступным и сделайте что-то вроде этого:

private void MenuItemClick(objec sender, EventArgs e)
{
   var userEnteredDate = DateTime.MinValue;
   FormWithDate fmNewFormWithDateOnIt = new FormWithDate();
   fmNewFormWithDateOnIt.ShowDialog();
   userEnteredDate = fmNewFormWithDateOnIt.dtTimePickerOnForm.Value;
   fmNewFormWithDateOnIt.Dispose()

   //Do your thing
}

ОБНОВЛЕНИЕ: Вы можете поместить кнопку в форму и установить ее DialogResult = OK, а затем сделать следующее:

if (fmNewFormWithDateOnIt.ShowDialog() == DialogResult.OK) //Not clicked the red close button on the form
{
       userEnteredDate = fmNewFormWithDateOnIt.dtTimePickerOnForm.Value;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...