C# 在designer中移动窗体上的控件时,Visual Studio 2012突然崩溃

C# 在designer中移动窗体上的控件时,Visual Studio 2012突然崩溃,c#,winforms,visual-studio-2012,crash,.net-4.5,C#,Winforms,Visual Studio 2012,Crash,.net 4.5,当我在设计器中的主窗体上移动某些元素时(编辑:将其缩小到大小/位置更改到对其调用了SuspendLayout、ResumeLayout和PerformLayout的控件,并且只有在使用鼠标直接编辑的情况下,才可以正常工作),VS崩溃并告诉我它已停止工作。当我使用第二个实例进行调试时,调试器会在devenv.exe中给我一个未处理的NullReferenceException。这个问题突然不知从何处冒出来,似乎很难解决-我修复了VS,重新安装了.Net framework(4.5 SDK),重新启

当我在设计器中的主窗体上移动某些元素时(编辑:将其缩小到大小/位置更改到对其调用了SuspendLayout、ResumeLayout和PerformLayout的控件,并且只有在使用鼠标直接编辑的情况下,才可以正常工作),VS崩溃并告诉我它已停止工作。当我使用第二个实例进行调试时,调试器会在devenv.exe中给我一个未处理的NullReferenceException。这个问题突然不知从何处冒出来,似乎很难解决-我修复了VS,重新安装了.Net framework(4.5 SDK),重新启动了机器,以管理员身份运行VS等。我使用的是Windows 8最新版本,我使用的是Visual Studio 2012 Premium

我唯一使用的第三方插件是git-ext

有没有人有过这样的经验?直到今天,我还认为像这样的东西更像是Java/Eclipse世界的主题…提前感谢您的任何提示,我有点绝望:)我当然会提供任何需要的额外信息!干杯

编辑

以下是使用第二个VS实例调试时遇到的异常:

System.NullReferenceException was unhandled


HResult=-2147467261
  Message=Object reference not set to an instance of an object.
  Source=System.Design
  StackTrace:
       at System.Windows.Forms.Design.Behavior.BehaviorService.AdornerWindow.MouseHook.MouseHookProc(Int32 nCode, IntPtr wparam, IntPtr lparam)
  InnerException: 
按照Kyle的指示(非常感谢您的输入!!),到目前为止,我尝试了以下方法:

  • 重新启动到安全模式-无更改
  • 创建新用户帐户-无更改
  • 删除所有加载项并在安全模式下运行-无更改
  • 重置设置-无更改
  • 创建一个新项目(带有一些控件的简单表单)——一切正常,没有崩溃,所以问题似乎确实与项目有关
  • 修复VS-无变化
  • 编辑2

    当我拖动新的GroupBox容器、更改其大小或删除它时,它也会崩溃

    编辑3


    按照Avi的说明,我能够解决该问题-它似乎是由VS2012中的一个错误引起的,我在一些其他控件后面隐藏了一个GroupBox控件,当我删除它时,错误就消失了。

    请尝试以下解决方法:

  • 如果我们重新启动操作系统到安全模式,我们有问题吗?这有助于隔离是否有任何其他应用程序干扰Visual Studio。请注意,某些功能(如IIS)在安全模式下不可用。请检查这是否适用。除了安全模式外,您还可以尝试“清洁引导”:

  • 如果我们创建一个新的用户帐户,我们有问题吗?这有助于隔离与用户配置文件损坏相关的原因

  • 如果禁用外接程序(例如“工具”|“外接程序管理器”)并运行“devenv.exe/safemode”,是否仍然存在问题?这可以消除第三方加载项引起问题的可能性

  • 如果我们使用“devenv.exe/resetsettings”,它能解决问题吗?它将恢复Visual Studio默认设置

  • 如果我们创建一个新项目,我们有问题吗?有时损坏的项目设置可能会导致问题。这些是特定于项目的

  • 如果问题仍然存在,我们可以使用Visual Studio安装向导(通过控制面板)修复Visual Studio。它可以将Visual Studio安装恢复到其原始状态

  • 此外,请参考以下连接链接,查看是否遇到相同问题


    这是关于这个问题的评论摘要:

    为了追踪问题,我将尝试:

  • 检查正在移动哪些图元
  • 他们是否将任何事件注册到移动/调整大小的事件中
  • 如果是,异常是否发生在事件处理程序中
  • 如果不是,错误是否发生在控件/窗体的构造函数中
  • 如果已找到异常的源,请尝试使用try-catch子句包装它。
    请记住,在设计时,设计器模拟对构造函数的调用,以便“构建”设计器。

    因此,使用try-catch子句包装对
    InitializeComponent
    的调用,应该会在
    designers
    文件中出现异常。

    您可以指定要移动哪些元素吗?这是一个具体的问题吗?它是自定义用户控件吗?属于.NET framework/第三方的用户控件?感谢您的评论!我对它进行了更多的研究,似乎我可以将其缩小到Windows.Forms.GroupBox控件。该组框是否包含任何其他控件?是的,但如果我添加一个新的空组框,其行为方式完全相同。我现在发现,只有当我使用鼠标修改大小/位置时,它才会崩溃。当直接编辑属性时,它就像一个符咒。是否有方法注册到调整大小的
    事件?