将旧的VS 2002 Windows窗体项目转换为更新的版本

时间:2010-08-06 19:28:51

标签: c# visual-studio winforms

我有一个使用Visual Studio .NET在C#1.0中启动的应用程序。作为部分重写/升级的一部分,我希望应用程序能够利用Windows Forms 2.0中的表单自动缩放功能。这些功能依赖于设置AutoScaleDimensions属性,该属性应由设计人员完成。我添加到项目中的新自定义表单使用正确的设计器代码进行设置,但我现有的所有表单和控件都不会自动生成此属性,因此无法正确自动缩放。我相信这是因为旧的表单是使用旧的VS2002项目格式创建的,其中所有设计器生成的代码都被转储到与用户创建的代码相同的文件中;当然,现代的WinForms应用程序会被VS分成多个文件。

我的问题:是否有任何已知方法将旧的Windows窗体项目“升级”为现代Visual Studio格式? (项目文件已升级到VS2010格式,但表单本身仍使用单文件格式。)我希望VS默认生成AutoScaleDimensions属性,而不必通过以下方式初始化属性:手。

2 个答案:

答案 0 :(得分:1)

您不会获得将表单类转换为部分类的帮助。真的没有必要,设计师仍然支持旧式。如果编辑表单布局不会自动插入属性赋值,那么只需在ClientSize赋值之前将其粘贴到自己。首先在示例项目上试一试,只需在窗体上单击一个按钮,然后查看Designer.cs文件内容即可。它应该类似于:

        this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
        this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
        this.ClientSize = new System.Drawing.Size(...)
        // etc..

您可以尝试一下,看看表单是否正确扩展,而无需通过在表单代码中粘贴它来重新启动计算机:

    protected override void OnLoad(EventArgs e) {
        this.Font = new Font(this.Font.FontFamily, 125f / 96 * this.Font.SizeInPoints);
        base.OnLoad(e);
    }

为了使它看起来不错,可能需要修改布局属性。

答案 1 :(得分:0)

您可以这样做,但您必须手动执行此操作:

  • 将整个.cs文件复制到.designer.cs
  • 将partial关键字添加到.designer one
  • 在.designer中删除除Windows Designer生成代码之外的所有内容
  • 在.cs中执行相反的操作(删除Windows Designer生成的代码)
  • 将.designer.cs添加到项目

相当简单,但对于多种形式而言非常劳动密集。