? Bạn cần lưu trữ kích thước và vị trí của một form (có thể thay đổi kích thước được) và phục hồi nó lại trong lần hiển thị form kế tiếp.
» Lưu trữ các thuộc tính Left, Top, Width, và Height của form trong Windows Registry.
Windows Registry là nơi lý tưởng để lưu trữ thông tin về vị trí và kích thước cho form. Cụ thể, bạn sẽ lưu trữ thông tin về mỗi form trong một khóa độc lập (có thể sử dụng tên của form làm khóa). Các khóa này sẽ được lưu trữ ngay dưới khóa ứng dụng.
Bạn cần tạo một lớp chuyên biệt để lưu và lấy các thiết lập cho form. Lớp FormSettingStore được trình bày dưới đây cung cấp hai phương thức: SaveSettings—nhận vào một form và ghi thông tin về kích thước và vị trí của nó vào Registry; và ApplySettings—nhận vào một form và áp dụng các thiết lập từ Registry. Đường dẫn của khóa và tên của khóa con được lưu trữ thành các biến thành viên lớp.
Visual C# Code:
  1. using System;
  2. using System.Windows.Forms;
  3. using Microsoft.Win32;
  4.  
  5. public class FormSettingStore {
  6.  
  7.     private string regPath;
  8.     private string formName;
  9.     private RegistryKey key;
  10.  
  11.     public string RegistryPath {
  12.         get {return regPath;)
  13.     }
  14.  
  15.     public string FormName {
  16.         get {return formName;}
  17.     }
  18.  
  19.     public FormSettingStore(string registryPath, string formName) {
  20.    
  21.         this.regPath = registryPath;
  22.         this.formName = formName;
  23.  
  24.         // Tạo khóa nếu nó chưa tồn tại.
  25.         key = Registry.LocalMachine.CreateSubKey(
  26.           registryPath + formName);
  27.     }
  28.  
  29.     public void SaveSettings(System.Windows.Forms.Form form) {
  30.    
  31.         key.SetValue("Height", form.Height);
  32.         key.SetValue("Width", form.Width);
  33.         key.SetValue("Left", form.Left);
  34.         key.SetValue("Top", form.Top);
  35.     }
  36.  
  37.     public void ApplySettings(System.Windows.Forms.Form form) {
  38.    
  39.         form.Height = (int)key.GetValue("Height", form.Height);
  40.         form.Width = (int)key.GetValue("Width", form.Width);
  41.         form.Left = (int)key.GetValue("Left", form.Left);
  42.         form.Top = (int)key.GetValue("Top", form.Top);
  43.     }
  44. }
Để sử dụng lớp FormSettingStore, bạn chỉ cần thêm đoạn mã thụ lý sự kiện dưới đây vào bất kỳ form nào. Đoạn mã này sẽ lưu các thuộc tính của form khi form đóng và phục hồi chúng khi form được nạp.
Visual C# Code:
  1. private FormSettingStore formSettings;
  2.  
  3. private void Form1_Load(object sender, System.EventArgs e) {
  4.  
  5.     formSettings = new FormSettingStore(@"Software\MyApp\", this.Name);
  6.     formSettings.ApplySettings(this);
  7. }
  8.  
  9. private void Form1_Closed(object sender, System.EventArgs e) {
  10.  
  11.     formSettings.SaveSettings(this);
  12. }


Trích từ "Các giải pháp lập trình C#"