Имеется проект (.NET, C#, WindowsForms), где на формах необходимы контролы ввода даты.
Однако, бывают ситуации, когда дата не предоставлена пользователем (это нормальная ситуация, оговоренная в ТЗ по данному проекту).
Требуется: чтобы у пользователя имелась возможность как ввести пустое поле, так и очистить поле с датой.
Применение следующего метода, описанного на просторах и-нета:
Помогает только очистить поле ввода в контроле dtp, однако ввести данные после этого пользователь уже не может
Попытка подписаться на событие DropDown — и там сделать следующие действия:
не позволяет выбрать требуемую дату с первого раза.
Вывод:
Очень желательно, либо найти альтернативу DateTimePicker, либо советы по доработке стандартного DateTimePicker.
Может быть, кто-нибудь сталкивался с подобной проблемой, и подскажет решение?
Заранее благодарен за любые советы!
P.S. Очень желательнло применение свободного (free) компонента.
Здравствуйте, AlexGin, Вы писали:
AG>Доброе время суток, уважаемые коллеги!
AG>Имеется проект (.NET, C#, WindowsForms), где на формах необходимы контролы ввода даты. AG>Однако, бывают ситуации, когда дата не предоставлена пользователем (это нормальная ситуация, оговоренная в ТЗ по данному проекту).
AG>Применение стандартного DateTimePicker: AG>https://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker(v=vs.110).aspx AG>проблемы не решает.
AG>Требуется: чтобы у пользователя имелась возможность как ввести пустое поле, так и очистить поле с датой.
Сделай рядом чекбокс "Дата не указана", который будет блокировать DateTimePicker. И всё! Заказчика, скорее всего, устроит — а если нет, то хотя бы будет рабочий вариант "на время". На ковыряние в кишках винформсов можно убить всё время, а его обычно не хватает.
Здравствуйте, AlexGin, Вы писали:
AG>Доброе время суток, уважаемые коллеги!
AG>Имеется проект (.NET, C#, WindowsForms), где на формах необходимы контролы ввода даты. AG>Однако, бывают ситуации, когда дата не предоставлена пользователем (это нормальная ситуация, оговоренная в ТЗ по данному проекту).
AG>Вывод: AG>Очень желательно, либо найти альтернативу DateTimePicker, либо советы по доработке стандартного DateTimePicker. AG>Может быть, кто-нибудь сталкивался с подобной проблемой, и подскажет решение?
А свойство ShowCheckBox у DateTimePicker-а не решает такую задачу? Он как раз меняет цвет на неактивный, что говорит, что дата не нужна
Здравствуйте, amironov79, Вы писали:
A>Делал похожим образом, только вместо MinValue и масок формата использовал ShowCheckBox и DateTime?.
A>
A> public DbDateTimePicker()
A> {
A> this.ShowCheckBox = true;
A> }
A> public new DateTime? Value
A> {
A> get
A> {
A> if (this.Checked == false) {
A> return null;
A> }
A> return base.Value;
A> }
A> set
A> {
A> if (value == null) {
A> this.Checked = false;
A> }
A> else {
A> this.Checked = true;
A> base.Value = value.Value;
A> }
A> }
A> }
A>
Здравствуйте, уважаемый VladCore, Вы писали:
VC>Голый WinForms как и WPF в реальной жизни мало на что годится.
Я в курсе
Поэтому и спрашиваю — что найти, чем заменить...
VC>DevExpress порекомендую. ComponentOne и Infragistic не рекомендую.
Я раньше и сам работал с DevExpress — очень хорошая библиотека. Мне нравится!
Только тут у нас, MSVS-2013 Community edition. Не знаю, станет ли на него DevExpress.
Слышал от товарищей, что для этого нужно Enterprise. Такой студии у нас нет.
VC>Сам попросил совета
Огормное Спасибо!
VC>P.S. Вспомнил, что базовые Editor-ы у DevExpress бесплатные.
Тут весь вопрос в том, что именно скачивать (какую версию), чтобы стало совместно с MSVS-2013 CE?
Кстати, имеется ещё и MSVS-2015 Community.
Здравствуйте, Vladek, Вы писали:
V>Сделай рядом чекбокс "Дата не указана", который будет блокировать DateTimePicker. И всё! Заказчика, скорее всего, устроит — а если нет, то хотя бы будет рабочий вариант "на время". На ковыряние в кишках винформсов можно убить всё время, а его обычно не хватает.
Спасибо, но "костылей" у нас хватает и без этого. Тем более, если "рядом" размещаются совсем другие контролы
Здравствуйте, уважаемый Vasiliy2, Вы писали:
V>А свойство ShowCheckBox у DateTimePicker-а не решает такую задачу? Он как раз меняет цвет на неактивный, что говорит, что дата не нужна
Спасибо, это также интересный выход!
AG>Я раньше и сам работал с DevExpress — очень хорошая библиотека. Мне нравится! AG>Только тут у нас, MSVS-2013 Community edition. Не знаю, станет ли на него DevExpress. AG>Слышал от товарищей, что для этого нужно Enterprise. Такой студии у нас нет.
Теперь выяснилось — можно и Community edition
Так, нормально установилась библиотека DevExpress v16.1.2 (for .NET).
Корректно интегрировалась в MSVS-2013 Community и в MSVS-2015 Community.