当前位置导航:炫浪网>>网络学院>>编程开发>>Visual C#教程

C#中使用Setting保存用户自定义窗体位置

方法:
  步骤一:打开项目属性窗口,切换到设置(Settings)标签,

  如下图添加属性

Name Type Scope Value
WindowLocation System.Drawing.Point User 0,0
WindowSize System.Drawing.Size User 300,300

  步骤二:
  在要保存状态的窗体代码头部添加
  using UserSettingsDemo.Properties;

  在窗体的FormLoad事件中添加以下代码:
private void FormMain_Load(object sender, EventArgs e)
{
// Set window location
    if (Settings.Default.WindowLocation != null)
{
this.Location = Settings.Default.WindowLocation;
}
// Set window size
    if (Settings.Default.WindowSize != null)
{
this.Size = Settings.Default.WindowSize;
}
} 
  步骤三:
  在窗体的FormClosing事件中添加如下代码:
private void FormMain_FormClosing(object sender, FormClosingEventArgs e)
{
// Copy window location to app settings
    Settings.Default.WindowLocation = this.Location;
// Copy window size to app settings
    if (this.WindowState == FormWindowState.Normal)
{
Settings.Default.WindowSize = this.Size;
}
else
{
Settings.Default.WindowSize = this.RestoreBounds.Size;
}
// Save settings
    Settings.Default.Save();
}
  以上是原作者写的,窗体最小化后在任务栏右键关闭窗体,

再次打开窗体会有点问题,以下是不才写的
private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
{
// Copy window location to app settings
                  Settings.Default.WindowLocation = this.Location;
// Copy window size to app settings

if (this.WindowState == FormWindowState.Normal)
{
if (this.Size.Width != 0 && this.Size.Height != 0)
{
Settings.Default.WindowSize = this.Size;
}
}
else
{
if (this.RestoreBounds.Size.Width != 0 && this.RestoreBounds.Size.Height != 0)
{
Settings.Default.WindowSize = this.RestoreBounds.Size;
}
}
// Save settings
                  if(this.WindowState!=FormWindowState.Minimized)
Settings.Default.Save();
}

相关内容
赞助商链接