C#基础拾遗03-注册表保存用户设置

简介:
  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

 

     ²        关闭窗体时,保存背景色;

       

复制代码
 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  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          }
复制代码

 

       然后在窗体的构造函数中调用即可。

重新运行程序,加载成功。

 

 

 

 

    本文转自 陈敬(Cathy) 博客园博客,原文链接:http://www.cnblogs.com/janes/archive/2011/06/04/2072837.html,如需转载请自行联系原作者

相关文章
|
1月前
|
C#
C#拾遗补漏之goto跳转语句
在我们日常工作中常用的C#跳转语句有break、continue、return,但是还有一个C#跳转语句很多同学可能都比较的陌生就是goto,今天大姚带大家一起来认识一下goto语句及其它的优缺点。
|
1月前
|
C#
C# DEV 关于设置gridview 指定单元格字体为红色
C# DEV 关于设置gridview 指定单元格字体为红色
|
1月前
|
C#
C# DEV TextEdit 设置文本框只能输入数字(整数)
C# DEV TextEdit 设置文本框只能输入数字(整数)
|
4月前
|
数据采集 API 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPISDK设置软件触发模式(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPISDK设置软件触发模式(C#)
40 1
|
4月前
|
存储 数据采集 数据处理
Baumer工业相机堡盟工业相机如何通过BGAPISDK设置相机的Bufferlist序列(C#)
Baumer工业相机堡盟工业相机如何通过BGAPISDK设置相机的Bufferlist序列(C#)
66 0
|
4月前
|
存储 数据管理 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机本身的数据保存(CustomData)功能(C#)
30 0
|
4月前
|
编解码 监控 开发工具
Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C#)
Baumer工业相机堡盟工业相机如何通过BGAPI SDK设置相机的图像剪切(ROI)功能(C#)
33 0
|
1月前
|
开发框架 人工智能 .NET
C#/.NET/.NET Core拾遗补漏合集(持续更新)
在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NET Core拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。
|
2月前
|
设计模式 C#
36.c#:如何设置MDL窗口
36.c#:如何设置MDL窗口
16 1
|
4月前
|
编解码 监控 开发工具
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C#)
Baumer工业相机堡盟工业相机如何通过NEOAPI SDK设置相机的图像剪切(ROI)功能(C#)
17 0