是否可以更改winforms设计器文件?

时间:2009-07-14 02:55:10

标签: winforms user-controls windows-forms-designer

我创建了一个只是这个

的类
Class UserControlBase
     Inherits UserControl
End Class

然后我将每个UserControls设计器文件中的Inherits子句更改为

   Inherits UserControlBase

我知道通常你不应该手动修改设计器文件。但在这种情况下你还能做些什么呢?这个可以吗?有没有我不了解的最佳做法?是否有其他方法可以实现相同的目的(扩展UserControl)?

4 个答案:

答案 0 :(得分:3)

我没有在更改“继承”行,添加“命名空间”或添加“导入/使用”语句时遇到问题。如果您需要执行这3项中的任何一项,您将找不到许多其他方法来处理这些要求。

答案 1 :(得分:3)

我在C#项目中一直更改它们...通常这是将您在设计器中执行过一次的内容复制到类似形式的最简单方法,并且您希望以不同的形式执行相同的操作。 Visual Studio完全能够读取您的更改并将其合并到设计器中。我真的不知道为什么有评论说不要编辑它。我的建议是确保你使用源代码控制,继续编辑,测试它,如果它工作正常,那么你可以随时退出你的编辑。

答案 2 :(得分:1)

没有。修改生成的文件绝不是一个好主意。

答案 3 :(得分:1)

Designer文件非常简单;你通常会在那里找到的唯一让事情变得复杂的事情(但只是轻微一点)是文件顶部和底部的BeginInit / EndInit调用 - 代码之间非常宽容。

*那就是说,在那里放置只会在运行时执行的代码。任何与运行时相关的代码都会在设计时失败,因此尝试在“设计”视图中打开控件会破坏块。它曾经给你带来了Darn的红色屏幕,但我不确定IDE有多少效果 - 但如果事情爆发并且通常的技巧无法解决它们,那么请尝试删除自定义部分。

进一步说明(不是为了吓唬你,而是为了避免我们遇到的一些困难)如果你的代码不属于当前代码,那么确定你的代码是在Runtime还是Designtime执行的方法经常会失败建成的解决方案/项目。

因此,为了将它全部带回家,简单的UI布局/ winforms修改完全可以在设计器代码中手动完成。应谨慎处理数据绑定和外部依赖(除了调用第三方控件库)。