部分表单类C# - 仅显示类的代码视图

时间:2013-12-27 07:24:21

标签: c# winforms visual-studio-2010

我在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文件。

1 个答案:

答案 0 :(得分:3)

正如评论中所提到的,Visual Studio将在代码编辑器中打开以.Designer.cs结尾的任何文件,而不是在表单设计器上。利用这一点,在表单设计器中打开表单的一个好方法是命名包含结尾为.Designer.cs的类的文件。

注意:我会说这不优雅。我发现有一个名为Form1.Designer.cs的文件并且没有设计者可以直观地反驳它。此外,如果表单最初是使用表单设计器创建的,则需要合并Form1.csForm1.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