Контрола уноса на нивоу поља за унос података

Поред класичне контроле TextBox, Windows Forms (.NET Framework) пружа специјализоване контроле које ограничавају унос већ у тренутку куцања, чиме значајно смањују потребу за накнадном валидацијом. Неке од њих су:

  • MaskedTextBox,

  • DateTimePicker и

  • MonthCalendar.

Ове контроле обезбеђују унапред дефинисан шаблон уноса, избор вредности из календара и друге облике контроле уноса који су поузданији и интуитивнији за корисника.

Контрола MaskedTextBox

Контрола MaskedTextBox омогућава креирање поља за унос које следи унапред дефинисан шаблон (маску), нпр. за број телефона, ЈМБГ, датум итд. На пример, маска за број телефона може изгледати овако:

maskedTextBox.Mask = "000-00-000-0000";

Овим се дозвољава унос тачно 12 цифара у датом формату, где карактер 0 у маски означава обавезну цифру. Валидан унос био би нпр. 381-63-123-4567. Поред карактера 0 уобичајени карактери које можеш користити приликом дефинисања маске су:

  • 9 за опционалну цифру,

  • L за обавезно слово (A–Z),

  • ? за опционално слово,

  • A за обавезан алфанумерички карактер, и

  • C за било који опциони карактер.

Корисне додатне опције ове контроле су PromptChar којом се дефинише симбол који се користи као замена за празне позиције и TextMaskFormat којом се одређује да ли се у Text својству враћају и знакови попут цртица. На пример:

maskedTextBox.PromptChar = '_';
maskedTextBox.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;

Контрола DateTimePicker

Контрола DateTimePicker је посебно дизајнирана контрола за унос датума и/или времена. Уместо да корисник ручно куца датум, користи падајући календар. Подешавања ове контроле су прилично једноставна…

dateTimePicker1.Format = DateTimePickerFormat.Short;

…а уместо вредности Short, можеш користити и:

  • Long, нпр. 22. јун 2025.,

  • Time, само за време, нпр. 14:30, или

  • Custom, за потпуну контролу над форматом.

Пример прилагођеног формата може да буде датум у формату ДД.ММ.ГГГГ. – на пример:

dateTimePicker.Format = DateTimePickerFormat.Custom;
dateTimePicker.CustomFormat = "dd.MM.yyyy.";

Контрола MonthCalendar

Контрола MonthCalendar омогућава избор датума (или више датума) преко класичног календара. Основно подешавање подразумева избор једног датума…

monthCalendar.MaxSelectionCount = 1;

…а можеш користити и својства:

  • SelectionStart за први изабрани датум,

  • SelectionEnd за последњи изабрани датум, и

  • TodayDate за тренутни датум.

Употребом специјализованих контрола, као што су MaskedTextBox, DateTimePicker и MonthCalendar, можеш унапред ограничити начин уноса података и тако смањити број грешака и потребу за накнадном валидацијом. У наредним лекцијама научићеш да радиш са датумом и временом као типовима података, а не само као контролама за унос у UI.