1. MaskedTextBox


U programiranju aplikacija koje rade s tekstualnim unosom, često je potrebno obezbediti da korisnik unosi podatke u određenom formatu. Na primer, unos broja telefona, datuma, vremena ili JMBG-a zahteva specifičan oblik. 

Kontrola MaskedTextBox omogućava ograničavanje unosa prema unapred definisanom formatu (šablonu, maski).


Osnovne karakteristike MaskedTextBox kontrole

MaskedTextBox je unapređena verzija klasične TextBox kontrole, sa mogućnošću primene maski koje korisniku omogućavaju unos samo u dozvoljenom formatu. 

Ključna svojstva MaskedTextBox kontrole su:

  • Mask – Definiše obrazac koji korisnik mora pratiti prilikom unosa podataka.
  • PromptChar – Simbol koji označava mesta koja korisnik treba da popuni.
  • BeepOnError – Ako je postavljeno na true, oglašava zvučni signal pri pogrešnom unosu.
  • HidePromptOnLeave – Ako je true, maska se ne prikazuje kada kontrola izgubi fokus.
  • ValidatingType – Može se koristiti za automatsku validaciju unesenih podataka.

Definisanje maske

Moguće maske za unos uključuju različite formate. 

Simboli koji se mogu koristiti za definisanje maske su:

Simbol Značenje
0 Obavezna cifra (0-9)
9 Opciona cifra ili razmak
# Opciona cifra, razmak ili znak + / -
L Obavezno slovo (A-Z, a-z)
? Opciono slovo
& Obavezan alfanumerički znak
C Opcioni alfanumerički znak
. , : - / Simboli koji se koriste kao fiksni razdvajači
\ Sledeći karakter tretira se kao običan znak

Opciono:  Pogladajte proširemu listu kodova znakova:

0 – Predstavlja obaveznu cifru između 0 i 9.
9 – Predstavlja opcionalnu cifru između 0 i 9.
# – Predstavlja obaveznu cifru između 0 i 9 ili razmak. Znakovi plus (+) i minus (-) se također prihvaćaju.
L – Predstavlja obavezno slovo, veliko ili malo (A-Ž, a-ž).
? – Predstavlja opcionalno slovo, veliko ili malo (A-Ž, a-ž).
& – Predstavlja obavezni znak. Ako je svojstvo AsciiOnly postavljeno na vrijednost true, ovaj se element ponaša kao L element.
C – Predstavlja opcionalni znak. Ako je svojstvo AsciiOnly postavljeno na vrijednost true, ovaj se element ponaša kao element ?.
A, a – Predstavlja opcionalni alfanumerički znak. Ako je svojstvo AsciiOnly postavljeno na vrijednost true, prihvaća samo A-Z i a-z.
. – Rezervisano mjesto za decimalni znak. Stvarni znak koji će biti korišten je decimalni znak postavljen preko svojstva FormatProvider.
, – Rezervisano mjesto znaka za grupiranje. Predstavlja separator za tisućice. Stvarni znak koji će biti korišten je znak za grupiranje postavljen preko svojstva FormatProvider.
: – Separator vremena. Stvarni znak koji će biti korišten je vremenski separator postavljen preko svojstva FormatProvider.
/ – Datumski separator. Stvarni znak koji će biti korišten je datumski separator postavljen preko svojstva FormatProvider.
$ – Simbol valute. Stvarni znak koji će biti korišten je simbol valute postavljen preko svojstva FormatProvider.
<  – Pomak dolje. Konvertuje sve znakove koji slijede u mala slova.
>  – Pomak gore. Konvertuje sve znakove koji slijede u velika slova.
| – Otkazuje prethodni pomak gore ili pomak dolje.
\ – Preskače znak maske, pretvarajući ga u doslovan znak (engl. literal character). Na primer, dvostruka obrnuta kosa crta (\\) je kontrolna sekvenca za pretvaranje u jednu obrnutu kosu crtu.
Ostali znakovi – Svi ostali znakovi prikazuju se u MaskedTextBox kontroli i korisnik ih ne može premjestiti ili obrisati.

Primer definisanja maske u kodu:

    maskedTextBox1.Mask = "(000) 000-0000"; // Telefon u formatu (123) 456-7890

  1. Unos telefonskog broja
     maskedTextBox1.Mask = "(000) 000-0000";
     maskedTextBox1.PromptChar = '_';

Ovde korisnik mora uneti broj telefona u formatu (123) 456-7890, a nepopunjeni karakteri biće prikazani kao _.

  1. Unos datuma
     maskedTextBox1.Mask = "00/00/0000";
     maskedTextBox1.ValidatingType = typeof(System.DateTime);

Korisnik unosi datum u formatu DD/MM/YYYY. Koristeći ValidatingType, možemo validirati unos kako bismo sprečili nepostojeće datume.

  1. Unos JMBG-a
     maskedTextBox1.Mask = "0000000000000";

Ova maska zahteva unos tačno 13 cifara za identifikacioni broj.



1. zadatak: napraviti winForm app u kojoj treba da je MaskedTextBox u koji se unosi dvocifren broj

Pošro je slično, možete ispratiti i uputstvo u video snimku:

Video 1: kako se koristi MaskedTextBox 

Dodatni deo zadatka: Dodati dugme ispod. Klikom na dugme treba da iskoči MessageBox sa ispisom unetog sadržaja


Dodatni zadaci za vežbu (kod kuće) -

Zadatak 1: Pokušajte da uradite zadatak kao na video snimku:




 


******************************************************************************************************************

dovde smo stigli na času, 20.02

******************************************************************************************************************************************************************************************************

2. deo zadatka - dodati izbor datuma - DateTimePicker - treba da se ispiše i koji je datum odabran



2.deo: DateTimePicker

DateTimePicker je kontrola koja omogućava lak unos i izbor datuma i vremena putem kalendara. Ova kontrola sprečava greške pri unosu jer korisnici biraju vrednosti iz padajućih lista ili koriste dugmad za navigaciju.

Karakteristike:

  • Format: Određuje prikaz datuma i vremena (npr. Short, Long, Time).
  • Value: Trenutna izabrana vrednost u formatu DateTime.
  • MinDate/MaxDate: Ograničava opseg datuma koji korisnik može izabrati.

Primer postavljanja DateTimePicker kontrole:

dateTimePicker1.Format = DateTimePickerFormat.Short;
dateTimePicker1.MinDate = new DateTime(2000, 1, 1);
dateTimePicker1.MaxDate = DateTime.Today;
dateTimePicker1.Value = DateTime.Today;

***************************

Kontrola za odabir: DateTimePicker – kontrola za odabir datima, vremena ili oboje koristeći opcije slične ComboBox kontroli

Zadatak 1: Pokušajte da ispratite sledeći video primer:

Zadatak 2: Kako da programski prikažete koliko imate godina:

Kontrola za odabir: DateTimePicker – kontrola za odabir datima, vremena ili oboje koristi opcije slične ComboBox kontroli:

  • CustomFormat – Prilagođeni format datuma i vremena koji se koristi kad je svojstvo Format postavljeno na vrednost Custom;
  • Format – Postavlja format za prikaz datuma i vremena u DateTimePicker kontroli. Ovo svojstvo može biti postavljeno na vrednost
    •  Long – prikazuje vrednost u obliku dugog datumskog zapisa,
    • Short – prikazuje vrednost u obliku kratkog datumskog zapisa,
    • Time – prikazuje samo vreme,
    • Custom – koristi prilagođeni format određen preko CustomFormat svojstva;
  • MaxDate – Maksimalna vrednost za datum i vreme koju kontrola može prihvatiti;
  • MinDate – Minimalna vrednost za datum i vreme koju kontrola može prihvatiti;
  • Value – Vrednost za datum i vreme na koju je kontrola trenutno postavljena.

Kada je Format postavljen na Time, iako Value sadrži i datumski deo, on se neće prikazati na kontroli

(opciono, za bolje učenike) Zadatak 3: Kako izračunati razliku između dva izabrana datuma (ispratite zadatak koji je prikazan na video snimku)


3. deo: 

Kontrola za odabiranje: MonthCalendar - omogućava označavanje datumskog intervala

Zadatak 1: Prateći video, kreirati aplikaciju sa kalendarom:

3. MonthCalendar

MonthCalendar omogućava pregled i izbor datuma u obliku mesečnog kalendara. Može se koristiti za prikazivanje više datuma istovremeno i za izbor opsega datuma.

Karakteristike:

  • SelectionRange: Omogućava izbor više datuma.
  • MaxSelectionCount: Ograničava broj datuma koje korisnik može izabrati.
  • BoldedDates: Omogućava isticanje specifičnih datuma.

Primeri postavljanja MonthCalendar kontrole:

monthCalendar1.MaxSelectionCount = 1; // Omogućava izbor samo jednog datuma
monthCalendar1.BoldedDates = new DateTime[]
{
    new DateTime(2025, 1, 1),
    new DateTime(2025, 12, 25)
};

Primeri

Primer 1: Validacija unosa datuma pomoću MaskedTextBox

        maskedTextBox1.Mask = "00/00/0000";
    
        buttonCheck.Text = "Proveri datum";
      

    void ButtonCheck_Click(object sender, EventArgs e)
    {
        if (DateTime.TryParse(maskedTextBox1.Text, out DateTime result))
        {
            MessageBox.Show("Validan datum: " + result.ToShortDateString());
        }
        else
        {
            MessageBox.Show("Nevalidan unos.");
        }
    }


Primer 2: Biranje datuma pomoću DateTimePicker

    DateTimePicker dateTimePicker1 = new DateTimePicker();
    Button buttonShowDate = new Button();

  //******
        dateTimePicker1.Format = DateTimePickerFormat.Short;

        buttonShowDate.Text = "Prikaži datum";
   //***************

    void ButtonShowDate_Click(object sender, EventArgs e)
    {
        MessageBox.Show("Izabrani datum: " + dateTimePicker1.Value.ToShortDateString());
    }

Primer 3: Korišćenje MonthCalendar kontrole

    MonthCalendar monthCalendar1 = new MonthCalendar();
   
        monthCalendar1.MaxSelectionCount = 1;

3. čas: 

Kontrola za odabiranje: MonthCalendar - omogućava označavanje datumskog intervala

Zadatak 1: Prateći video, kreirati aplikaciju sa kalendarom:

Kontrola za odabir: MonthCalendar omogućava označavanje datumskog intervala

  • AnnuallyBoldedDates – Sadrži polje datuma i vremena koji će se prikazivati podebljano svake godine;
  • BoldedDates – Sadrži polje datuma i vremena koji će se pojaviti podebljani;
  • FirstDayOfWeek – Određuje koji je dan u sedmici postavljen kao prvi dan u sedmici MonthCalendar kontrole;
  • MaxDate – Postavlja maksimalni datum koji se može odabrati u kontroli;
  • MinDate – Postavlja minimalni datum koji se može odabrati;
  • MaxSelectionCount – Postavlja maksimalni broj dana koji se mogu označiti;
  • MonthlyBoldedDates – Sadrži polje datuma i vremena koji će se pojaviti podebljani svakog meseca;
  • SelectionEnd – Označava završni datum i vreme SelectionRange svojstva;
  • SelectionRange – Sadrži datumski interval koji je korisnik selektovao;
  • SelectionStart – Označava početni datum i vreme SelectionRange svojstva.

Nakon što odaberemo jedan datum, držeći Shift možemo odabrati drugi datum intervala.

Zadatak 2: Kako selektovati opseg datuma (Uradite zadatak kao na video snimku)

 opciono: kako postaviti da se vidi više od jednog meseca:

(opciono - ako se stigne ili za bolje učenike) Zadatak 3: Kreiranje RAVNOG kalendara


Vežbe

  1. Validacija unosa: Kreirajte aplikaciju koja omogućava unos datuma pomoću MaskedTextBox i proverava da li je unos validan.
  2. Izbor datuma: Napravite program koji omogućava korisniku da izabere datum pomoću DateTimePicker i prikaže rezultat u labeli.
  3. Istaknuti datumi: Koristeći MonthCalendar, dodajte nekoliko istaknutih datuma i prikažite poruku kada korisnik izabere jedan od njih.

Last modified: Thursday, 11 December 2025, 2:43 AM