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 Control 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 void Store()
{
if (control!=null)
{
RegistryKey rk;
rk = Registry.CurrentUser.CreateSubKey(baseKey);
rk.SetValue(control.Name, control.Text);
rk.Close();
}
}
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 void Restore()
{
if (control!=null)
{
RegistryKey rk;
try
{
rk = Registry.CurrentUser.OpenSubKey(baseKey, true);
control.Text=rk.GetValue(control.Name).ToString();
rk.Close();
}
catch
{
}
}
}
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 Control 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 void Form1_Load(object sender, System.EventArgs e)
{
autoStoreText1.Restore();
autoStoreText2.Restore();
}
A programunk bezárása előtt meg kell hívnunk a Store függvényeket, erre a Closing esemény megfelel.
private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
autoStoreText1.Store();
autoStoreText2.Store();
}