我在C#中有一个空白表单项目。
我想在Form Class上将函数和事件分成不同的Codefiles。为了使它变得更易于管理,当它变得很大并且有多个人在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>
所以程序编译并且一切看起来都不错,除了当我从解决方案资源管理器中打开文件时,它会打开一个空白的表单设计器,而不是代码。
我希望VS只将此类作为代码文件打开,以限制Form1.Designer.cs文件的问题。
我也尝试删除SubType
<SubType>Form</SubType>
但Visual Studio会不断将其添加回csproj文件。
答案 0 :(得分:3)
正如评论中所提到的,Visual Studio将在代码编辑器中打开以.Designer.cs
结尾的任何文件,而不是在表单设计器上。利用这一点,在表单设计器中打开表单的一个好方法是命名包含结尾为.Designer.cs
的类的文件。
注意:我会说这不优雅。我发现有一个名为Form1.Designer.cs
的文件并且没有设计者可以直观地反驳它。此外,如果表单最初是使用表单设计器创建的,则需要合并Form1.cs
和Form1.Designer.cs
,这可能会在Visual Studio中产生问题。
我的原始答案
请按照以下步骤操作:
1)确保设计师已关闭。
2)修改您的Form1.Designer.cs
并使用空字符串DesignerCategory
添加属性""
(“Designer”,“表单”或“组件”以外的任何随机值也有效 - 不区分大小写):
namespace MyLargeProject
{
[System.ComponentModel.DesignerCategory("")]
public partial class Form1
{
// ...
}
}
3)卸载你的项目。
4)重新加载你的项目。
5)注意设计师没有出现。
6)享受!
注意:在Visual Studio 2012上测试,但基于discussion thread from 2005。