当前位置:  开发笔记 > 编程语言 > 正文

保存并恢复表单位置和大小

如何解决《保存并恢复表单位置和大小》经验,为你挑选了1个好方法。

在WinForms 2.0 C#应用程序中,用于在应用程序中保存和恢复表单位置和大小的典型方法是什么?

相关,是否可以在RUNTIME添加新的用户范围应用程序设置?我完全看到如何在设计时添加设置,这不是问题.但是如果我想在运行时创建一个呢?

更多细节:

我的应用程序是现有Visual FoxPro应用程序的转换.我一直在尝试尽可能多地阅读有关应用程序设置,用户设置等的内容,并清楚地了解.Net的做事方式,但仍然有一些我很困惑的事情.

在Fox应用程序中,保存的设置存储在注册表中.我的表单是子类,我有基类代码,自动保存表单位置和大小在表单名称的注册表中.每当我创建一个新表单时,我都不需要做任何特殊的事情来获得这种行为; 它内置于基类中.我的.Net表单也是子类,该部分运行良好.

在.Net中,我得到的印象是我应该使用用户范围设置来处理用户首选项等内容.表单的大小和位置绝对看起来像用户首选项.但是,我看不到任何方法可以自动将这些设置添加到项目中.换句话说,每次我向项目添加一个新表单(并且它们是100个表单)时,我必须记住添加一个用户范围的应用程序设置,并确保给它与表单相同的名称,即" FormMySpecialSizePosition"保持大小和位置.我宁愿不记得那样做.这只是运气吗?或者我是否通过尝试使用用户范围设置完全咆哮错误的树?我是否需要创建自己的XML文件来保存设置,以便我可以做任何我想做的事情(即在运行时添加新设置)?或者是其他东西?

当然这是非常普遍的,有人可以说"正确"的方式来做到这一点.提前致谢!



1> 小智..:
private void Form1_Load( object sender, EventArgs e )
{
    // restore location and size of the form on the desktop
    this.DesktopBounds =
        new Rectangle(Properties.Settings.Default.Location,
    Properties.Settings.Default.Size);
    // restore form's window state
    this.WindowState = ( FormWindowState )Enum.Parse(
        typeof(FormWindowState),
        Properties.Settings.Default.WindowState);
}

private void Form1_FormClosing( object sender, FormClosingEventArgs e )
{
    System.Drawing.Rectangle bounds = this.WindowState != FormWindowState.Normal ? this.RestoreBounds : this.DesktopBounds;
    Properties.Settings.Default.Location = bounds.Location;
    Properties.Settings.Default.Size = bounds.Size;
    Properties.Settings.Default.WindowState =
        Enum.GetName(typeof(FormWindowState), this.WindowState);
    // persist location ,size and window state of the form on the desktop
    Properties.Settings.Default.Save();
}

推荐阅读
小白也坚强_177
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有