winforms 是否可以在Visual Studio之外编辑Visual Studio设计器文件?

zbq4xfa0  于 2023-06-24  发布在  其他
关注(0)|答案(2)|浏览(120)

Visual Studio为WinForms窗体创建设计器文件(如frmMain.Designer.cs)。在这些文件中,有一个名为“InitializeComponent”的方法,它有一个注解:不要用代码编辑器修改此方法的内容。
现在我想知道:可以在Visual Studio之外编辑这些文件吗?这些文件里有什么神秘的东西吗?
我正在尝试使用Mono将WinForms项目移植到Linux。为了维护这些项目,我想使用WinForms设计器。Visual Studio不能在Linux上运行,所以我只能使用其他一些工具。例如,网页“https://www.mono-project.com/archived/winforms_designer/”谈论一个未完成的设计师。也许这个设计师可以通过一些努力完成。显然,这样的工具需要编辑这些设计器文件。所以我想知道可以在Visual Studio之外编辑这些文件吗?这些文件里有什么神秘的东西吗?

x3naxklr

x3naxklr1#

您可以编辑这些文件;它们没有什么神秘的。事实上,你甚至可以在Visual Studio中实现它。
您 * 不应该 * 编辑这些文件的原因是,它们是由IDE自动生成的,因此,当您编辑它们时,您可能会面临以下风险:

  • 在IDE的设计器窗口中进行更改后立即丢失更改(导致IDE重新生成文件)
  • 导致设计器窗口停止工作(例如,如果添加导致异常的代码)。

有时,编辑设计器文件会很有帮助。例如,如果要添加许多控件,则可以通过复制和粘贴代码并编辑一些定位值来更有效地添加它们,而不是使用设计器,这样会更慢。
在这种情况下,您不会丢失更改,因为这些更改将反映在IDE设计器窗口中。每当IDE保存设计器文件时,您在该窗口中看到的任何内容都将写回该文件。

wvt8vs2t

wvt8vs2t2#

可以在Visual Studio外部编辑Visual Studio为WinForms窗体创建的设计器文件,例如frmMain.Designer。用于初始化和设置窗体控件的自动生成代码包含在这些文件中,这些文件是标准C#代码文件。
这些设计器文件的“InitializeComponent”方法负责配置窗体的控件及其设置和事件处理程序。您提到的Visual Studio中的警告“不要使用代码编辑器修改此方法的内容”旨在阻止手动修改此方法,因为设计器可能会覆盖进程内部所做的任何更改。虽然设计器文件本身可以修改,但通常建议使用Visual Studio设计器对WinForms窗体进行更改。使用设计器的图形界面以可视化方式设计和编辑窗体布局、控件和属性更为简单。
Mono项目确实提供了一个WinForms设计器,正如您所说,用于使用Mono将WinForms程序转换为Linux。设计师仍然被认为是不完整的,但经过一些工作,完成和改进它可能是可行的,以便它满足您的需求。如果您选择改进Mono WinForms设计器,则可能需要在Visual Studio之外更改Visual Studio生成的设计器文件。总之,即使可以在Visual Studio之外更改设计器文件,也建议在可行时使用Visual Studio设计器for WinForms应用程序。如果您决定使用Mono WinForms设计器,则可能需要调整这些文件,但请注意不要更改“InitializeComponent”方法中自动生成的代码,以避免与设计器的功能发生冲突。

相关问题