如何避免* .designer.cs和* .resx中不必要的更改?

时间:2014-07-08 16:34:35

标签: winforms visual-studio resx

出于某种原因,Visual Studio赢得设计师不时对表单设计器文件和相应的resx应用枯燥的更改。

到目前为止最烦人的事了:

  • 更改控件声明/初始化的顺序
  • 更改某些控件尺寸(最值得注意的是菜单项宽度)
  • 更改嵌入资源的序列化图像(...等,什么???)

这些更改不会影响表单/用户控件功能或外观,但它们会在源代码管理中产生大量噪音,使合并几乎不可能,或者需要手动修复错误以消除实际更改注意事项的所有更改,直到下一次改为设计师。

任何想法如何阻止工作室?

2 个答案:

答案 0 :(得分:12)

请尝试使用右键锁定您的控件,然后选择"锁定控件"在您的表单/用户控件上。

enter image description here

不幸的是,没有办法分开"有用"来自"污染的生成代码的变化"来自控制设计师的错误或内部工作。

如果锁定控制功能因任何原因无效,除了那些可怕的黑客外,我们无能为力:

  • 创建并完成表单后,将生成的代码(InitializeComponent方法和声明)移出.designer.cs。 Visual Studio将不再触摸它。缺点是你将不再拥有视觉支持。

  • 将.designer.cs文件标记为只读将阻止Visual Studio尝试更改它。它有时会导致Visual Studio控件设计器出现问题,但它会使.designer.cs完好无损。

还有另一种方法,根本不使用设计师。这导致了一种采用winforms编程的新方法,因为您将提供用于使用其属性和事件初始化控件的代码。

它不像看起来那么庞大和丑陋:使用可重用模式和OO功能可能非常令人愉快,并且一些良好对齐的方法调用比隐藏在.designer.cs文件中的一些可怕代码更好。

当然没有视觉支持,但你可以通过在设计模式下将控件添加到空容器来欺骗它,看看它是什么样的。

答案 1 :(得分:-1)

据我了解,您已编辑过.designer.cs文件。从某一点来看,没关系,我想我们都这样做了。但是,有明确的通知&#39;文件是自动生成的,不要更改它&#39;。因此,Visual Studio会向您发出警告,如果您对其进行编辑,则事情可能并不总是很好。就像设计一样。虽然这些自动更改可能不会给您的应用带来麻烦,但它们有时会(例如,设置宽度和高度到控件应该在上下文中更改其宽度和高度,如果您有多语言应用程序,这总是必要的。)< / p>

所以如果你不喜欢垃圾,你就不会使用设计师,因为它会产生垃圾,这就是它的工作原理。或者你从它开始,在某些时候决定不再打开它然后做你的清洁。

或者你去WPF,它符合你的要求,现在是时候让WinForms成为传统,在某些时候它的支持肯定会结束。