为什么Visual Studio会在设计器打开时修改“Windows窗体设计器生成的代码”?

时间:2016-06-29 17:26:45

标签: vb.net winforms visual-studio

在VS.NET 2015中使用WinForm项目时,我们的团队已经注意到仅仅在设计器视图中打开.VB表单的行为(双击解决方案资源管理器中的文件时的默认操作)将导致VS修改实际.VB代码隐藏的“Windows窗体设计器生成代码”部分中的许多对象属性。对于有时数十个或更多的UI对象,它似乎仅限于.Size和.Location属性,总是稍微改变它们的X,Y坐标。

请注意,我们不会执行任何操作来驱动它 - 只需在VS.NET的表单设计器中打开文件(从源代码控制获取并驻留在本地解决方案/项目中),方法是双击解决方案中的文件资源管理器和bam - 它有“未保存的”星号,如果你保存并与源代码控制版本进行比较,你可以看到已经进行的修改。

我在这方面找不到多少。这是一种已知行为吗?知道为什么会这样吗?有点让我想起过去MS / FrontPage的设计师视图,甚至是VS的早期版本,如果你在设计师视图中打开一个WebForm,它会应用一些HTML更改,直到他们给出了禁用它的选项。稍后发布。

感谢任何意见。

更新:即使我自己是设计师中唯一的.VB表单编辑器,这似乎还在继续。各种形式元素正在轻微地改变它们的位置。这是我上次登记和今天之间的差异截图,我知道我是唯一一个编辑:

enter image description here

......有很多这样的人。总是这两个属性,总是只有几个像素差异。

1 个答案:

答案 0 :(得分:3)

我对此没有具体的答案,但是因为几个月前我和我的团队一起疯狂了,在开展WinForms项目时,我很高兴分享我的经验!

每当有人在VS2015上打开任何表单时,它会询问当时打开相同解决方案的其他人重新加载代码。我们首先想到我们正在使用的第三方控件(当时它是DevExpress和Infragistics)都是在设计初始化时重新生成的 - 因为他们倾向于这么做,但后来我们意识到这种情况一直发生在只包含的表单上。 NET控件。

现在有趣的部分。这只发生在VS2015上。我们之前使用的是VS2013,没有这个恼人的问题。

长话短说,然后我们意识到我们使用的屏幕有不同的DPI,就像Cody Gray说的那样。我不确定这是否是原因,但自从我们开始使用TFS以来,显然我们不再有问题了......希望这有助于某种方式大声笑。