【问题标题】:Partial Form Class C# - Only display code view for classPartial Form Class C# - 仅显示类的代码视图
【发布时间】:2014-01-14 19:20:11
【问题描述】:

我有一个 C# 中的空白表单项目。

我想将函数和事件分离到表单类上的不同代码文件中。当它变大并且多人在 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>Form</SubType>

但 Visual Studio 不断将其添加回 csproj 文件。

【问题讨论】:

    标签: c# winforms visual-studio-2010


    【解决方案1】:

    如 cmets 所述,Visual Studio 将在代码编辑器中打开任何以 .Designer.cs 结尾的文件,而不是在表单设计器中。利用这一点,在表单设计器中无法打开表单的一个很好的解决方案是将包含以 .Designer.cs 结尾的类的文件命名。

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

    【讨论】:

    • 99% OK,它使整个项目只作为代码打开,而不是使用设计器。但这绝对是向前迈出的一大步。
    • @IEnumerable 在 VS 2012 中它仅适用于标记的表单。由于我无法在 VS 2010 上进行测试,我猜这是 VS 2010 的错误。我不知道是否有任何解决方法。
    • 其实我会将此标记为正确,请修改您的答案,因为您发布的主题是正确答案。只需将扩展名从.cs 更改为.Designer.cs,文件将始终加载到代码视图中。
    • 我同意它并不优雅,但原始解决方案会将所有文件更改为在代码视图中打开,而不是由设计师打开 Form1.cs。 (至少在我的安装中)。从我目前的测试来看,一切顺利。 [Im using C# Express 2010.] 拥有Form1.Events.Designer.cs 扩展名不是很好,本来更喜欢Form1.Events.cs 但现在和这个项目必须这样做。感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-12
    • 2013-01-08
    • 1970-01-01
    • 1970-01-01
    • 2019-05-10
    相关资源
    最近更新 更多