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

我在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.

上一篇:C#-更新按钮单击


下一篇:禁用单击复选框,但不能从后面的代码