在Visual Studio的设计视图中打开表单(.cs)会立即显示未保存的更改

本文关键字:显示 保存 cs 表单 Studio Visual 视图 | 更新日期: 2023-09-27 18:02:17

我在c#项目中有一个窗体,在"设计"视图中打开时行为奇怪。每当我在"Design"视图中打开表单时,它都会立即在其选项卡上的表单名称旁边放置一个星号(*)。如果我在没有进行任何更改的情况下关闭它,系统会提示我保存更改。只有一种形式能做到这一点。

如果我直接打开表单的代码,它不会以这种方式运行。如果我直接打开设计器代码,它不会这样做。

但是,有一个奇数序列我可以复制:

  1. 打开设计器代码(不显示星号)
  2. 在"设计"视图中打开表单(现在两个选项卡都有星号)
    • 。如果我现在尝试关闭任何一个选项卡,我被要求保存更改
    • b。如果我关闭Visual Studio,我被要求保存两个选项卡的更改(或所有3,如果我有设计器代码和表单代码打开之前,在"设计"视图打开表单)。
    切换到设计器代码选项卡。当我这样做时,"撤销"按钮启用,我可以选择撤销"设计师生成的代码"。但是,此时星号将消失仅适用于设计器代码选项卡。
    • 。如果我撤消更改,复制代码,重做更改,并比较代码,它们是相同的。
  3. 我现在可以关闭设计器选项卡而不被要求保存更改。"设计"视图选项卡仍然有一个星号,并要求保存更改。它也仍然有"撤消"按钮启用选项撤消"设计器生成的代码"

当我在"设计"视图中打开表单时,如何阻止这些幻影(实际上不是-)更改(实际上不是-)?

注意:我没有任何花哨或非标准的设置。每次都是同一台机器上的单个开发人员,所有东西都保存到VS的默认位置,没有第三方的任何东西与VS有关

在Visual Studio的设计视图中打开表单(.cs)会立即显示未保存的更改

当你使用表单设计器时,它使用CodDom在designer .cs文件中生成代码。一旦你打开designer和designer.cs文件。在设计表单UI时执行的操作将在设计器文件中生成代码,并显示*符号。为了使它简短,最后有一个designer.cs文件,它将实际反映表单设计器中的更改。