C#中实现窗体第二次打开时,在原来第一次关闭的位置,类似于QQ面板
2018-03-11 17:57
369 查看
第一步:新建一个FormPositionHelper.cs类 代码如下:
using Microsoft.Win32;//这个需加上 class FormPositionHelper { // 在HKEY_CURRENT_USER 设置注册表的路径 public static string RegPath = @"Software\App\"; public static void SaveSize(System.Windows.Forms.Form frm) { //Create or retrieve a reference to a key where the settings //will be stored. RegistryKey key; key = Registry.LocalMachine.CreateSubKey(RegPath + frm.Name); key.SetValue("Height", frm.Height); key.SetValue("Width", frm.Width); key.SetValue("Left", frm.Left); key.SetValue("Top", frm.Top); } public static void SetSize(System.Windows.Forms.Form frm) { RegistryKey key; key=Registry.LocalMachine.OpenSubKey(RegPath+frm.Name); if(key!=null) { frm.Height=(int)key.GetValue("Height"); frm.Width=(int)key.GetValue("Width"); frm.Left=(int)key.GetValue("Left"); frm.Top=(int)key.GetValue("Top"); } } }
第二步:在窗体第一次加载和关闭之前调用上述类中的两个方法,具体如下:
//窗体加载事件 private void Form1_Load(object sender, EventArgs e) { FormPositionHelper.SetSize(this); } //窗体关闭事件 private void Form1_FormClosing(object sender, FormClosingEventArgs e) { if (this.WindowState != FormWindowState.Minimized) //必须加上这个判断,否则窗体最小化后无法恢复和还原了 FormPositionHelper.SaveSize(this); }
相关文章推荐
- C# 实现MDI子窗体只打开一个(打开新的窗口,关闭其他窗口)
- C# WinForm 关闭登陆窗体,打开主窗体的实现.
- c#实现关闭当前窗体并打开另一个已经创建的窗体
- C# WinForm 关闭登陆窗体,打开主窗体的实现.
- C#在后台注册一个脚本,打开一个子窗口,显示在屏幕中间,关闭子窗体刷新子窗体代码
- C#实现QQ窗体隐藏(第一版)
- c# winform 关闭窗体时同时结束线程实现思路
- c# 做的登录窗体,登录成功后当前登录Form关闭,打开Main窗体,但Main窗体点关闭按钮后程序仍在进程怎么办
- 比较精简的C#中打开新窗体关闭旧窗体
- C#打开关闭窗体事件顺序
- C#实现仿QQ窗体停靠功能
- winForm窗体关闭按钮实现托盘后台运行(类似QQ托盘区运行)
- C# 窗体靠近屏幕边缘自动隐藏*学习(类似于QQ)
- 用C#用C#实现窗体在规定时间弹出,例如:10:00.弹出后关闭。并在5分钟后再次弹出。5次后停止。最好有具体代码实现窗体在规定时间弹出,例如:10:00.弹出后关闭。并在5分钟后再次弹出。5次后停止。最好有具体代码
- C#实现类似QQ的窗体停靠
- (转) c#中如何设计一个窗体关闭,另一个窗体打开?
- c#中实现双击标题栏关闭窗体
- C#设置窗体打开位置(在显示器的右下角打开)
- Java实现窗体隐藏,功能类似于QQ窗口自动隐藏
- C# 打开子窗体(from2),如何关闭父窗体(from1)