HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Property értékek automatikus tárolása, visszaállítása


Példaprogram letöltése

7522 bájt

Tegyünk egy From-ra egy TextBox-ot. A felhasználó ebbe bármit írhat. Ha bezárja az alkalmazásunkat és újra indítja azt, akkor a TextBox tartalma elvész. Lehetnek olyan esetek, amikor az lenne a jó, ha megmaradna az utoljára beírt adat. Ekkor az adott TextBox Text property-jét tárolnunk kell a program bezárásakor és a tárolt adatot fel kell használnunk a programunk újbóli indításakor. A legjobb megoldás persze az lenne, ha bizonyos kontrolok, bizonyos property-jei automatikusan tárolásra és visszaállításra kerülnének. Mellékelt példában egy olyan komponenst készítünk, mely megvalósítja ezt a feladatot.

A mellékelt projekt lefordítása után a ToolBox-ra felvehető egy AutoStoreText nevű komponens. E komponenst felhasználhatjuk arra, hogy egy-egy kontrol Text property-jét tároljuk és visszaállítsuk szükség esetén. Hogy melyik kontrolt kezelje a komponens, azt a StoreControl nevű property-jében adhatjuk meg. Ezt követően a Store függvény hívásakor megtörténik a választott kontrol Text property-jének tárolása a Windows regisztrációs adatbázisba, majd a Restore függvény hívásakor a visszaállítás. Így csak arról kell gondoskodnunk, hogy a programunk indulásakor, vagy amikor csak szükség van rá, meghívjuk a Store és Restore függvényeket.
A Store a Windows regisztrációs adatbázis CurrenUser főkulcsán belül a baseKey konstansban megadott kulcson végzi el a tárolást.
  Public Sub Store()
    If Not (c Is Nothing) Then
      Dim rk As RegistryKey
      rk = Registry.CurrentUser.CreateSubKey(baseKey)
      rk.SetValue(c.Name, c.Text)
      rk.Close()
    End If
  End Sub 'Store
A Restore függvény megpróbálja kiolvasni a már esetlegesen tárolt adatot, amennyiben ez sikeres, beállítja a választott kontrol Text property-jét.
  Public Sub Restore()
    If Not (c Is Nothing) Then
      Dim rk As RegistryKey
      Try
        rk = Registry.CurrentUser.OpenSubKey(baseKey, True)
        c.Text = rk.GetValue(c.Name).ToString()
        rk.Close()
      Catch
      End Try
    End If
  End Sub 'Restore
A komponens felhasználásához tegyünk a Form-ra annyit belőle, amennyi szükséges, majd mindegyiknél állítsuk be a StoreControl property-t. Ezt követően a Load eseménynél hívjuk meg a komponensek Restore függvényét, így a programunk indulásakor helyreállítottuk a tárolt Text property-ket.
  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
    autoStoreText1.Restore()
    autoStoreText2.Restore()
  End Sub 'Form1_Load
A programunk bezárása előtt meg kell hívnunk a Store függvényeket, erre a Closing esemény megfelel.
  Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
    autoStoreText1.Store()
    autoStoreText2.Store()
  End Sub 'Form1_Closing


Cikksorozat



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-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |