Ввод даты с помощью DateTimePicker

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

krukovis84
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 108
Зарегистрирован: 04.08.2009 (Вт) 11:16
Откуда: Кочевник

Ввод даты с помощью DateTimePicker

Сообщение krukovis84 » 05.08.2009 (Ср) 20:17

Всем привет!
Проблема: хочу использовать контрол DateTimePicker для ввода даты, но не смог настроить его под ввод даты с клавиатуры без помощи мыши. Т.е. отдельно день, месяц, год можно цифрами ввести, но приходится перескакивать на день, месяц и год мышкой, а так чтобы только клавиатурой вбивать дату у меня не получилось.
Можно еще пробелом перескакивать когда формат в виде dd.MMMM.yyyy, а когда в виде dd.MM.yyyy - уже пробелом не перескакивает.
Возможно как нить это поправить?

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Ввод даты с помощью DateTimePicker

Сообщение Nord777 » 05.08.2009 (Ср) 20:40

Стрелками
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

krukovis84
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 108
Зарегистрирован: 04.08.2009 (Вт) 11:16
Откуда: Кочевник

Re: Ввод даты с помощью DateTimePicker

Сообщение krukovis84 » 05.08.2009 (Ср) 20:56

Да, стрелками! Круто придумано, и очень удобно блин ). Сидит такой юзер и дату вводит: сначала день ввел, затем стрелку вправо, потом месяц, стрелку вправо, год. Теперь Таb можно долбить чтобы курсор перешел на следующий контрол. Очень удобно придумано. Зло берет прям...

Что же они в MicroSoft'е совсем дебилы чтоли или для инвалидов одноруких все у них заточено? Для мышки все продумали и графика и вся херня, а чтобы ввод даты аналогично маске сделать - это нет.
Это пусть неудобным останется... а зачем данные удобно вносить?

Люди! А как же вы делаете приложения? Поле для ввода даты какое юзаете? Скажите плиз!
И есть ли способ переходить между TextBox'ами с помощью стрелок а не Tab'а?

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Ввод даты с помощью DateTimePicker

Сообщение Денис » 06.08.2009 (Чт) 7:47

И есть ли способ переходить между TextBox'ами с помощью стрелок а не Tab'а?

Обрабатывать событие KeyPress отлавливая нажатие клавиш-стрелок, переводить фокус.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

krukovis84
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 108
Зарегистрирован: 04.08.2009 (Вт) 11:16
Откуда: Кочевник

Re: Ввод даты с помощью DateTimePicker

Сообщение krukovis84 » 06.08.2009 (Чт) 9:12

Обрабатывать событие KeyPress отлавливая нажатие клавиш-стрелок, переводить фокус.

:D Этот способ я знаю. Я думал может быть это как нубудь продумано, автоматизировано, думал что может как то позаботились о программисте )...

Как реализовать ввод даты - не говорите, пожалуйста. Не расстраивайте... :lol:
Буду с помощью маски обычной делать, а кнопочкой рядом с маской делать видимым календарь, чтобы можно было и мышкой выбирать дату и с клавиатуры (по-человечески, а не как это задумали создатели студии) можно было ввести дату без отвлечения на стрелочки.

Если знаете другие способы это реализовать - подскажите плиз.
Спасибо.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Ввод даты с помощью DateTimePicker

Сообщение MIT » 06.08.2009 (Чт) 9:16

krukovis84 писал(а):по-человечески, а не как это задумали создатели студии
Именно для этого в студии есть замечательная возможность создавать свои контролы. Сделай свой пикер таким, каким бы ты хотел его видеть.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

krukovis84
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 108
Зарегистрирован: 04.08.2009 (Вт) 11:16
Откуда: Кочевник

Re: Ввод даты с помощью DateTimePicker

Сообщение krukovis84 » 06.08.2009 (Чт) 9:37

Именно для этого в студии есть замечательная возможность создавать свои контролы. Сделай свой пикер таким, каким бы ты хотел его видеть.


Спасибо! Дельный совет. Я на VB6 все время обходил эту тему, а сейчас видимо пора. Нужно уже расти в профессиональном плане. Честно скажу - вообще не представляю как это делается. Но чем сложнее - тем интереснее. Буду разбираться.

krukovis84
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 108
Зарегистрирован: 04.08.2009 (Вт) 11:16
Откуда: Кочевник

Re: Ввод даты с помощью DateTimePicker

Сообщение krukovis84 » 24.08.2009 (Пн) 15:49

Всем привет!
Я узнал (эмпирическим путем) как перескакивать с дня на месяц и с месяца на год в этом контроле.
Решил написать, если кто то не знает как это делается, а по ответам похоже, что никто не знает.

Это делается... это делается... все замрели в ожидании?... это делается... ЭТО ДЕЛАЕТСЯ НАЖАТИЕМ НА ТОЧКУ и НА ЗАПЯТУЮ !!!
И все это еще чувствительно к языку ввода! Т.е. на русской расладке при нажатии на "Б" и "Ю" работать не будет, а на кнопочке рядом с шифтом и на боковой клавиатуре - работает в любом случае. Ну и понятно, что на английской раскладке - вообще везде работает.

Ну как?

Я сам офигел! А контрол то - хорший :D :!:

Теперь юзеру еще удобнее будет даты воодить! Ура!

З.Ы. Прости Microsoft :oops: за агрессию, но надо же объяснять... блин.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Ввод даты с помощью DateTimePicker

Сообщение Денис » 25.08.2009 (Вт) 14:42

krukovis84 писал(а):все замрели в ожидании?..


Да вам, маэстро, надо в шоу-бизнесе работать. :mrgreen:
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

DJinn_kz
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 28.04.2014 (Пн) 13:38

Re: Ввод даты с помощью DateTimePicker

Сообщение DJinn_kz » 28.04.2014 (Пн) 13:42

Вижу, что почти 5 лет прошло..
Но, мож кому пригодится.
Довольно простой способ:
в DateTimePicker1Change добавить SendMessage(DateTimePicker1.handle, wm_char, ord('.'), 0);

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 28.04.2014 (Пн) 22:09

Ord??? Язык не перепутал? И вообще, фигня получится, потому что некоторые числа двухзначные, а ещё есть стрелки вверх/вниз.
И вообще, ну вот ни капельки не понимаю, почему стрелка - это неудобно...

DJinn_kz
Начинающий
Начинающий
 
Сообщения: 2
Зарегистрирован: 28.04.2014 (Пн) 13:38

Re: Ввод даты с помощью DateTimePicker

Сообщение DJinn_kz » 29.04.2014 (Вт) 8:15

тьфу ты точно VB.. сори..
Qwertiy писал(а):Ord??? Язык не перепутал? И вообще, фигня получится, потому что некоторые числа двухзначные, а ещё есть стрелки вверх/вниз.
И вообще, ну вот ни капельки не понимаю, почему стрелка - это неудобно...

Я тоже не понимаю, почему заказчику не удобно стрелками)


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 57

    TopList