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);
}
}
}
{
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 }
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 }
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,如需转载请自行联系原作者