HyperLink


Bejelentkezés
E-mail: 
Jelszó: 






Skip Navigation Links
 

Dátum, idő megjelenítő Label


Példaprogram letöltése

10323 bájt

Készítsünk most egy új kontrolt, mely a Label-ből származik, de a Text property-je automatikusan frissül, méghozzá az aktuális dátum és időpont értékével. Így alkalmazásunkban egyszerűen megjeleníthetjük az aktuális időt, hiszen csak fel kell tenni a kontrolt a Form-ra és kész.

Mellékelt példa megnyitása előtt a TimeText alkönyvtárban lévő projektet fordítsuk le és szükség esetén telepítsük a ToolBox-ra az új kontrolt.
A kontrolt a mellékelt TimeText alkönyvtárban találjuk. Ahhoz, hogy folyamatosan meg tudjuk jeleníteni az aktuális időpontot a Label-en, nyilvánvaló hogy egy időzítőre lesz szükségünk, mely állandóan frissíti a Text property-t. Ehhez szükségünk lesz egy Timer komponensre.
    private System.Timers.Timer timer = new System.Timers.Timer();
Az új kontrol konstruktorában beállítjuk az időzítő szükséges értékeit.
public TimeLabel()
{
Az időzítést egy másodpercre állítjuk, így minden másodpercet megjeleníthetünk.
      timer.Interval = 1000;
Létrehozunk egy eseménykezelőt az Elapsed eseményhez, mely akkor jön majd létre, ha az egy másodperc lejárt. Ekkor kerül majd meghívásra a DoElapsed nevű függvényünk.
      timer.Elapsed += new ElapsedEventHandler(DoElapsed);     
Végezetül engedélyezzük az időzítő futását.
      timer.Enabled = true;      
}
Létrehozunk még két logikai típusú property-t is a kontrolhoz ShowDate és ShowTime névvel. Ezekkel szabályozhatjuk, hogy a megjelenítendő szövegben az aktuális dátum, vagy az időpont jelenjen meg, esetleg mindkettő.
Nézzük most a DoElapsed függvény működését.
Adott két logikai változó, hogy mit is kell megjelenítenünk. Ezeket kombinálva maximum négy lehetséges tennivalónk lehet. Így készítünk egy változót, melyben kiszámítjuk, hogy mit is kell tennünk.
    private void DoElapsed(object source, ElapsedEventArgs e)
    {
      int i = 0;
A szám első bitje tárolja, hogy az időt meg kell-e jeleníteni.
      if (showtime)
      {
        i++;
      }
A szám második bitje tárolja, hogy a dátumot meg kell-e jeleníteni.
      if (showdate)
      {
        i += 2;
      }
Ezek után már könnyű a dolgunk: egy switch-el elágaztathatjuk a programunkat négy irányba.
      switch (i)
      {
Ha mind a két property hamis, akkor a megjelenő szöveg egy null sztring lesz.
        case 0:
          Text = "";
          break;
Ha a szám értéke egy, akkor csak az időpontot kell kiírni.
        case 1:
          Text = DateTime.Now.ToString("hh:mm:ss");
          break;
Ha a szám kettő, akkor csak a dátumot kell kiírni.
        case 2: 
          Text = DateTime.Now.ToString("yyyy. MM. dd.");
          break;
Hármas esetén pedig mind a dátumra, mind az időpont kiírására szükség van.
        case 3: 
          Text = DateTime.Now.ToString("yyyy. MM. dd. hh:mm:ss");
          break;
      }
    }
A kontrolhoz az igen egyszerű teszt alkalmazás a TestApp alkönyvtárban található. Itt egy Form-ra elhelyezünk két TimeLabel kontrolt. Az egyiknél csak a dátum kijelzését, a másiknál csak az idő kijelzését engedélyezzük.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2001 évkönyv 266. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2010 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |