【问题标题】:The *Design.cs file will reset automatically and delete the manually writed codes?*Design.cs 文件会自动重置并删除手动编写的代码?
【发布时间】:2017-12-15 14:36:14
【问题描述】:

我需要改变一些初始化的控件值,如下:

        this.lblName.Top = 10;
        this.lblFamily.Top = this.lblName.Top + this.lblName.Height + 15;
        ...

当我在InitializeComponent() 方法中编写这些代码时(在 [Windows 窗体名称]Designer.cs 文件中自动创建,该文件是 Windows 窗体 partial class 容器),有时会出现此代码会自动删除,有时会在 *.cs[Design] 视图中出现错误警告,并且会在忽略该提示后删除上面手动添加的代码。

我想添加新控件并通过在 *Designer.cs 文件中编写适当的代码手动为其分配初始化属性值

如何分配控件属性的初始化值?

&

为什么 *Designer.cs 文件会自动重置或在 *.cs[Design] 选项卡中返回错误页面?

【问题讨论】:

  • TL;DR; 永远不要修改 *.designer.cs 文件。这就是为什么它是一个 designer 文件,这就是为什么它在顶部包含一条消息,指出不要更改文件。
  • 你正在修改一个生成的文件,当它重新生成时,你想知道为什么?这是一个生成的文件。请勿修改!
  • “此文件由工具生成”。不要成为工具:D
  • 我不允许更改生成的文件吗? 声明并添加和分配windows窗体控件的初始化属性的最佳方法是什么?
  • @MischaBehrend 是的,只有 OP 才能确切知道。我想(现在),他想以编程方式设计表单,看起来更均匀:this.lblFamily.Top = this.lblName.Top + this.lblName.Height + 15; 是一个提示。所以你说得对。所以“如何使用设计师让表单看起来不错”也可能是背后的问题

标签: c# winforms visual-studio


【解决方案1】:

有 2 个文件供您填写:

MyFormClass.cs在这里您可以随意编辑、添加属性、更改它们等。

MyFormClass.designer.cs // 自动生成,不要在这里放东西

在 InitializeComponent() 调用之后将您的自定义代码放入构造函数中

public MyFormClass()
{
    InitializeComponent();
    // do it here
    this.lblName.Top = 10;
    this.lblFamily.Top = this.lblName.Top + this.lblName.Height + 15;
}

它是部分类定义的第二半,因此您可以访问所有属性。

文件1:

namespace Test{
    public partial class MyFormClass{
    // add some code
    }
}

文件2:

namespace Test{
public partial class MyFormClass{
    // add some code here
    }
}

【讨论】:

  • 问候。如何在 MyFormDesigner.csMyForm.resx 文件附近的 Windows 窗体文件夹中添加新的特定部分类?如果属实,请指导我提出新问题。
  • 它在 Visual Studio 中自动完成,但您可以创建一个类文件并将代码放在那里,只需使用相同的命名空间
  • 也许已经有一个了。您不能创建 2 个同名文件
  • 随心所欲地调用它,并将其添加到项目资源管理器中的项目中。例如MyFormExtension.cs 并在那里编写代码,但我很确定该文件已经存在,使用 VS 时
  • 在 Visualstudio Form 中按 F7 即可查看代码,或者右键单击:“查看代码”
猜你喜欢
  • 1970-01-01
  • 2018-03-02
  • 1970-01-01
  • 1970-01-01
  • 2014-01-13
  • 2011-05-08
  • 2018-03-12
  • 1970-01-01
  • 2011-03-28
相关资源
最近更新 更多