C#基礎拾遺03-註冊表儲存使用者佈建

來源:互聯網
上載者:User
  1.         註冊表介紹

註冊表查看工具regedit.exe。最進階主要包括5個鍵。

另外還有2個隱藏的,一般不常用。

2.         註冊表操作

.NET操作註冊表主要用到兩個類,命名空間為Microsoft.Win32。

  • RegistryKey:針對具體鍵的操作,包括3個唯讀屬性和一些列的方法,分別添加、刪除和設定子鍵和值。
  • Registry主要包括7個唯讀屬性,分別對應可能存在的7個頂級鍵。

3.         註冊表執行個體

執行個體很簡單:通過下拉框選擇顏色,作為表單的背景色。當關閉視窗時自動儲存設定。

²        頁面配置:建立Windows Application程式,在表單上添加一個ComboBox控制項;

²        初始化顏色下拉框:在這裡我們要利用反射來擷取標準色列表。

     

 private void DisplayColor()
        {
            Type colortype = typeof(Color);
            PropertyInfo[] info = colortype.GetProperties();
            foreach (PropertyInfo pi in info)
            {
                if (pi.PropertyType == typeof(Color)&&pi.Name !="Transparent")
                {
                    comboBox1.Items.Add(pi.Name);
                }
            }
        }

  

注意:由於表單背景色不能設定為透明,因此要排除”Transparent”。

²        改變選擇時,表單顏色隨之改變。在ComboBox控制項添加事件:

 

SelectedIndexChanged

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            this.BackColor = Color.FromName(comboBox1.SelectedItem.ToString());
        }

 

     ²        關閉表單時,儲存背景色;

       

 1      private void SaveColor()
 2         {
 3             try
 4             {
 5                 RegistryKey colorkey = Registry.CurrentUser.CreateSubKey(@"SoftWare\Cathy\Colors");
 6                 colorkey.SetValue("BackColor", comboBox1 .SelectedItem.ToString ());
 7                 colorkey.Close();
 8             }
 9             catch (Exception ex)
10             {
11                 MessageBox.Show("載入失敗" + ex.Message.ToString());
12             }
13         }

然後,我們重寫表單的Dispose()事件,在釋放表單對象時,調用以上方法。

 

Dispose

 1 protected override void Dispose(bool disposing)
 2         {            ........
 7             base.Dispose(disposing);
 8             if (comboBox1.SelectedIndex != -1)
 9                 SaveColor();
10         }

 

    此時,運行程式,如所示:

開啟註冊表,找到相應的索引值:

²        開啟表單時,載入使用者佈建的背景色。

      

 1 private void GetColor()
 2         {
 3             try
 4             {
 5                 RegistryKey colorkey = Registry.CurrentUser.OpenSubKey(@"SoftWare\Cathy\Colors");
 6                 string ColorName = (string)colorkey.GetValue("BackColor");
 7                 Color color = Color.FromName(ColorName);
 8                 this.BackColor = color;
 9                 comboBox1.SelectedItem = ColorName;
10                 colorkey.Close();
11             }
12             catch (Exception ex)
13             {
14                 MessageBox.Show("擷取失敗" + ex.Message.ToString());
15             }
16         }

 

       然後在表單的建構函式中調用即可。

重新運行程式,載入成功。

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.