Хороший способ в .NET Winforms, чтобы пользователь ввел временные рамки? - PullRequest
4 голосов
/ 19 марта 2010

Кто-нибудь знает хороший способ, чтобы пользователь вводил количество времени (часы и минуты), используя элементы управления winforms?На данный момент у меня есть два числовых взлета, один за время и один за минуты, которые я затем анализирую, чтобы создать промежуток времени.Единственная другая идея, которую я имею, - это текстовое поле, в которое пользователь может ввести время «00:00» и подтвердить ввод.Оба эти способа кажутся немного плохими (с точки зрения пользовательского интерфейса).

Есть идеи?

Спасибо

Ответы [ 5 ]

10 голосов
/ 19 марта 2010

Ввод времени никогда не бывает простым для представления в пользовательском интерфейсе.Посмотрите на две вещи в Windows, где вводятся времена:

  1. Добавление нового запланированного задания:
    Adding a new scheduled task
  2. Изменение системного времени:
    Changing the system time

В обоих из них используется пользовательский элемент управления типа текстового поля, в котором можно ввести значение или использовать элемент управления вверх / вниз для изменения значения,Это, вероятно, лучший компромисс.

Вы можете достичь этого самостоятельно, используя встроенный элемент управления DateTimePicker , а затем изменив свойство CustomFormat в соответствии с форматом, который вы используете.хочу (т.е. чч: мм для вас пример часов и минут).Свойство ShowUpDown также можно использовать для необязательного отображения элемента управления вращающейся кнопки, как показано на рисунках выше.

8 голосов
/ 19 марта 2010

Вы можете использовать MaskedTextBox . Это позволит вам иметь поле ввода с форматом, основанным на выбранной вами маске (например, __:__). Это было бы полезно в том случае, если количество времени может превышать 24 часа (которое элемент управления DateTimePicker не позволит вам ввести).

2 голосов
/ 19 марта 2010

Обычно я просто использую элемент управления DateTimePicker. Я выбираю опцию пользовательского формата и устанавливаю для нее значение ЧЧ: мм, а для параметра ShowUpDown задается значение true.

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

0 голосов
/ 19 марта 2010

Если вас больше всего интересует удобство использования и вы хотите создать временной интервал, почему бы просто не использовать 2 выпадающих списка? 1 для часов, 1 для минут. Очень просто и мало места для ошибок от пользователя

0 голосов
/ 19 марта 2010

Используйте метод часов 00:00 и поместите маленькие кнопки со стрелками над и под разделом часов и минут, чтобы они могли нажимать для увеличения / уменьшения, а также вводить его, как кнопка голосования слева.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...