苏飞论坛
标题:
自上次关闭的地方启动窗体
[打印本页]
作者:
youzi
时间:
2013-5-20 23:49
标题:
自上次关闭的地方启动窗体
[code=csharp]这里有一个关于注册表的简单实用,跟大家一起分享学习下
图一为窗体打开的位置
图二为窗体拖动到的位置并在此位置关闭了窗体,当窗体在此打开是窗体时在图二位置启动打开的,我们平时用的很多软件中有很多这个样子的,也就是注册表的读取和写入(RegistryKey类下的 GetVaule 和 SetValue)
1.首先引用 using Microsoft.Win32; 此可以使用 RegistryKey 类
2.Load事件从注册表读数据
private void Form1_Load(object sender, EventArgs e)
{
RegistryKey regisOne;
RegistryKey regisTwo;//声明注册表对象
regisOne = Registry.CurrentUser;//获取当前用户的注册表基项
try
{
regisTwo = regisOne.CreateSubKey("Software\\MySoft");//在注册表中创建子项
this.Location = new Point(Convert.ToInt16(regisOne.GetValue("one")), Convert.ToInt16(regisTwo.GetValue("two")));//设置窗体的显示位置
}
catch (Exception ex)
{
new Exception(ex.Message);
}
}
备注:在第一次加载窗体的时候注册表里是读取不到值的,返回null
3.窗体关闭事件向注册表写数据
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
{
RegistryKey regisOne, regisTwo;//声明注册表对象
regisOne = Registry.CurrentUser;//获取当前用户的注册表基项
regisTwo = regisOne.CreateSubKey("Software\\MySoft");//在注册表中创建子项
try
{
regisOne.SetValue("one", this.Location.X.ToString());//将窗体当前X坐标写入注册表
regisTwo.SetValue("two", this.Location.Y.ToString());//将当前窗体的Y坐标写入注册表
}
catch (Exception ex)
{
new Exception(ex.Message);
}
}
就这么简单,这样,窗体就可以在关闭的位置启动了[/code]
作者:
htht530
时间:
2013-5-21 08:30
受教了,学习中……沙发
作者:
youzi
时间:
2013-5-21 21:23
htht530 发表于 2013-5-21 08:30
受教了,学习中……沙发
大家一同学习{:soso_e181:}
作者:
兵戎天下
时间:
2013-5-21 21:47
受教了,学习中……
作者:
兵戎天下
时间:
2013-5-21 21:50
强烈支持楼主ing……多发一些winform的!多谢!
作者:
youzi
时间:
2013-5-22 21:14
兵戎天下 发表于 2013-5-21 21:50
强烈支持楼主ing……多发一些winform的!多谢!
共同进步
作者:
chenwu0815
时间:
2013-7-14 23:09
学习了。。支持。。
作者:
lizhenlinok
时间:
2014-12-22 20:00
学习下
欢迎光临 苏飞论坛 (http://www.sufeinet.com/)
Powered by Discuz! X3.4