我在C#中有一个Blank Forms项目.
我想将函数和事件分成Form类上的不同Codefile.为了使其变得更易于管理,当它变大并且有很多人在CodeControl上使用它时.
所以我创造了
> Form1.Functions.cs
> Form1.Events.cs
这些额外的局部类都包含
namespace MyLargeProject
{
public partial class Form1
{
}
}
我还更改了csproj文件,以便VS IDE将其显示在Soution Explorer中.
例
<Compile Include="Forms\Form1.Functions.cs">
<DependentUpon>Form1.cs</DependentUpon>
<SubType>Form</SubType>
</Compile>
因此,该程序可以编译,并且一切都很好,只不过当我从解决方案资源管理器中打开文件时,它会打开一个空白的Form设计器,而不是代码.
我希望VS仅以代码文件形式打开此类,以限制Form1.Designer.cs文件的问题.
我也尝试过删除SubType
<SubType>Form</SubType>
但是Visual Studio一直将其添加回csproj文件.
解决方法:
如注释中所述,Visual Studio将在代码编辑器而不是表单设计器中打开任何以.Designer.cs结尾的文件.利用这一点,在表单设计器中未打开表单的一个好的解决方案是命名包含以.Designer.cs结尾的类的文件.
注意:我会说这不是很优雅.我发现有一个名为Form1.Designer.cs的文件并不具有设计器,这很直观.另外,如果表单最初是使用表单设计器创建的,则需要合并Form1.cs和Form1.Designer.cs,这在Visual Studio中可能会出现问题.
我的原始答案
跟着这些步骤:
1)确保设计器已关闭.
2)修改您的Form1.Designer.cs并添加带有空字符串“”的属性DesignerCategory(“ Designer”,“ Form”或“ Component”以外的任何随机值也可以使用-不区分大小写):
namespace MyLargeProject
{
[System.ComponentModel.DesignerCategory("")]
public partial class Form1
{
// ...
}
}
3)卸载您的项目.
4)重新加载您的项目.
5)注意设计师没有出现.
6)享受!
注意:已在Visual Studio 2012上测试,但基于discussion thread from 2005.