【问题标题】:Is there a way to prevent Visual Studio 2008 from opening a file in design view by default?有没有办法阻止 Visual Studio 2008 默认在设计视图中打开文件?
【发布时间】:2010-01-08 19:57:10
【问题描述】:

我正在为 Windows 窗体应用程序的某些部分编写 NUnit TextFixture。文件中的一些类派生自 UI 组件类,如下所示:

[TestFixture]
public class MainFormTest : PersistenceTestBase // Base class here is not a form
{
    class TestMainForm : MainForm // MainForm inherits from Form
    {
        public new String SomeMethod()
        {
            // Some MainForm private method overridden to expose it to my test fixture
        }
    }

    private TestMainForm mainForm;

    [TestFixtureSetUp]
    public void TestFixtureSetUp()
    {
        mainForm = new TestMainForm();
    }

    [Test]
    public void TestMainFormDoesXYZ()
    {
        // Perform unit testing...
    }
}

但是,我遇到的一个烦恼是,由于这些类继承自 UI 组件类,当我在解决方案资源管理器中双击我的单元测试文件时,Windows 会打开设计器窗口。其中,由于它不是“真正的”UI 元素(而是测试类),因此它显示为损坏的 UI(取决于我如何安排文件,消息如“无法为该文件显示设计器,因为没有类在其中可以设计”如图所示)。有没有办法抑制这种行为,还是我总是必须右键单击此文件并“查看代码”?

【问题讨论】:

    标签: c# visual-studio ide nunit design-view


    【解决方案1】:

    右击,选择“打开方式...”,选择你想要的编辑器,然后点击“设为默认值”。

    真的需要你的测试类来假装它们不是它们吗?对我来说,这听起来不是一个非常好的主意。

    【讨论】:

    • 不错!实际上,测试类 extend 基本控件(作为单元测试的内部类),但我不想将它们编辑为表单(仅基类)。因此,它们在测试中真正充当了真实的形式。这样做的原因基本上是让我的 UnitTest 像用户一样控制表单,并可能访问测试所需的一些内部位。除了使用一些记录/播放框架之外,我发现 UnitTesting 表单存在问题。对于 Windows 窗体的手动测试还有其他想法吗?
    • 呵呵,就在我对上一条评论点击“添加评论”之后,我意识到也许我的最后一句话值得一个它自己的 Stack Overflow 问题(如果不存在的话)。 :-)
    • @Ogre:我没有注意到测试夹具本身不是扩展表单的类。
    • 您也可以选择该文件并按[F7],然后将进入代码视图。
    【解决方案2】:

    向类添加[System.ComponentModel.DesignerCategory("")] 属性,以防止Visual Studio 在解决方案资源管理器中双击文件打开设计器时打开它。

    【讨论】:

    • 这是更好的解决方案!我的单元测试从 DbConnection 派生的类有问题,这很烦人。添加属性修复它!
    【解决方案3】:

    另一种解决方案:

    右键单击文件并单击打开方式...菜单。将打开一个对话框,选择 Microsoft Visual Basic Editor 并单击 设为默认值。点击Ok就可以了,以后会一直使用代码编辑器而不是其设计器打开文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 2011-03-02
      • 2014-03-31
      • 1970-01-01
      • 2010-10-26
      • 1970-01-01
      相关资源
      最近更新 更多