C# - 在Visual Studio中无法打开Windows Form

在一个C#的桌面应用项目中需添加一个与另一个项目一样的windows form。出于DRY原则,自己直接将该windows form的相关源文件添加到了项目中。自以为大功告成之际,发现在Visual Studio 2017中无法打开该form的可视化界面 - design viewer。

此问题自己之前遇到过,依稀记得需要通过手工修改项目的工程文件(.csproj)才能解决,但不记得如何具体修改。

幸好通过万能的stackoverflow找到了具体修改方法,现将该方法记录下来,供有类似问题的朋友做个参考,少走弯路、节约宝贵的人生时间。

以下以一个windows form为例,对应的源文件分别为:

HolidaysForm.cs
HolidaysForm.resx
HolidaysForm.Designer.cs
  • 找到windows form文件所在项目(project)的C#工程文件,该文件以csproj结尾,一般位于项目的根目录下,且一个项目只有一个该文件。用记事本打开该文件。
  • 查找windows form的cs文件名(含后缀.cs),比如HolidaysForm.cs。在内容
<Compile Include="HolidaysForm.cs">
      <SubType>Form</SubType>
</Compile>

之后添加以下内容:

<Compile Include="HolidaysForm.Designer.cs">        
    <DependentUpon>HolidaysForm.cs</DependentUpon>
</Compile>
  • 在该文件中,继续查找到相应的资源文件名,比如:HolidaysForm.resx
    将内容
    <EmbeddedResource Include="HolidaysForm.resx" />
    修改为:
<EmbeddedResource Include="HolidaysForm.resx">
    <DependentUpon>HolidaysForm.cs</DependentUpon>  
</EmbeddedResource>

修改完成后保存该cs工程文件,利用Visual Studio的design viewer就可以打开可视化的设计界面。

如有不清楚之处,欢迎随时留言进行交流。

推荐阅读更多精彩内容