如何在设计时进行调试?

17

我使用UserControl创建了一个自定义的ListView,当鼠标在ColumnHeader中进入时,它应该在设计时更改颜色。

它有效,但我需要调试代码。如何在设计时调试代码?

示例图片

2个回答

24

参见 Walkthrough:在设计时调试自定义 Windows 窗体控件 (MSDN)。

或者可以使用更简便的方式:

  • 使用相同的解决方案两次启动 Visual Studio。
  • 第一次打开您的控件设计器,第二次使用菜单 工具附加到进程 → 另一个 devenv.exe(Visual Studio)进行附加。

设计师出现错误,但是另一个应该进行调试的VS上没有任何反应。 - Pedro77
1
更新VS2017的链接:https://learn.microsoft.com/zh-cn/dotnet/framework/winforms/controls/walkthrough-debugging-custom-windows-forms-controls-at-design-time#debugging-your-custom-control-at-design-time - Preben Huybrechts
对于VS2017的路径是:%ProgramFiles(x86)%\Microsoft Visual Studio\2017\<edition>\Common7\IDE - Alper

1

Kelon's answer在Windows Forms中是正确的,但不适用于XAML。

在Visual Studio 2012及更高版本中,XAML设计器运行在Visual Studio之外的自己的进程中(devenv.exe)。要在设计时调试XAML控件,需要将第二个Visual Studio实例附加到“XDesProc.exe”(Xaml Designer Process)。

详细说明:

  • 使用包含要调试的XAML的解决方案打开Visual Studio
  • 打开任何XAML文件(这样XDesProc就会启动)
  • 使用菜单 工具附加到进程,向下滚动并记录XDesProc.exe进程ID。(不要实际附加,否则Visual Studio将挂起。)
  • 关闭XAML文件
  • 使用相同的解决方案打开第二个Visual Studio实例
  • 使用菜单 工具附加到进程,并附加到上面记录的XDesProc进程

    Attach to XDesProc

  • 如果您正在调试异常,则使用菜单 调试窗口异常设置公共语言运行时异常 → 勾选

    Debug Windows Exception Settings

    Common Language Runtime Exceptions

  • 返回第一个实例并重新打开XAML文件。

  • 第二个Visual Studio实例会在异常处中断
  • 您也可以在第二个实例中设置断点
  • 在修复错误后重新编译,必须停止调试
  • 要再次调试,可以通过菜单 调试重新附加到进程 节省时间,该菜单将附加到与之前相同的XDesProc.exe。

    Reattach


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接