防止Visual Studio更新Form.Designer.cs中的特定行
本文关键字:cs Designer Visual Studio 更新 Form 防止 | 更新日期: 2023-09-27 17:50:32
我想知道是否有可能阻止Visual Studio更新由我更改的特定行?例如,我有单独的资源项目(图像,声音等)。我改变了Form.Designer.cs中的一些行,并使所有图像都从资源dll中加载。但是一旦我更新表单,它自己的一切都回到默认值,所有的资源被使用的表单被复制到表单。resx文件。
我怎么解决这个问题?
不
如文件开头所述,*.Designer.*
是一个自动生成的文件。每次保存它所依赖的文件时,它都会被重新构建,所以您不应该更改任何不希望混乱的代码。
最好将表单设计器生成的代码与您想要控制的代码分开。然后可以在表单的构造函数中处理需要处理此代码的顺序。例子:
namespace FormTest
{
public partial class Form1 : Form
{
private Label PostAddedLabel;
public Form1()
{
InitializeComponent();
PostInitializeComponents();
}
private void PostInitializeComponents()
{
if (!this.DesignMode)
{
PostAddedLabel = new Label();
PostAddedLabel.Left = 100;
PostAddedLabel.Top = 30;
PostAddedLabel.Text = "The Post-added Label";
this.Controls.Add(PostAddedLabel);
}
}
}
}
我们可以简单地在设计器中设计表单,在成功的设计阶段之后,我们可以将声明、赋值和相关的代码移动到PostInitializeComponents方法中。
使用!this。设计模式决定时,窗体将在运行时模式下显示分离的控件。当处于设计器模式时,这些控件将不会显示,以确保系统在设计表单时不会影响这些控件。
如果你也想在用户控件中使用这种方法,试着从下面的文章中嵌入"IsDesignerHosted"方法在"DesignMode"之上:
希望这能回答问题?
No。Visual Studio不会"更新"设计器文件,而是删除它并写入一个全新的副本。没有办法做你想做的。
你应该把你的代码添加到你的代码后面。这是同一个类