如何在设计时调试?

时间:2011-06-24 07:29:51

标签: c# debugging user-controls

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

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

Example image

2 个答案:

答案 0 :(得分:21)

请参阅 Walkthrough: Debugging Custom Windows Forms Controls at Design Time (MSDN)。

或者以较短的方式只做一次:

  • 使用相同的解决方案启动Visual Studio两次。
  • 第一个使用控件的打开设计器,第二个使用Menu连接 - >调试 - >附加到流程 - >另一个devenv.exe(Visual Studio)

答案 1 :(得分:1)

Kelon的答案对于Winforms是正确的,但对于XAML不正确。

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

详细说明:

  • 使用包含您的XAML的解决方案打开Visual Studio 调试
  • 打开任何XAML文件(这样XDesProc将启动)
  • 使用以下命令记下XDesProc.exe进程ID:调试>附加到进程,滚动 并记下进程ID。 (请勿实际附加或目视 工作室将挂起)。
  • 关闭XAML文件
  • 使用相同的解决方案打开Visual Studio的第二个实例
  • Debug>附加到您上面提到的XDesProc进程

Attach to XDesProc

  • 如果要调试异常,请依次单击“调试”>“ Windows”>“异常设置”,“公共语言运行时异常”>“已检查”

Debug Windows Exception Settings

Common Language Runtime Exceptions

  • 返回第一个实例,然后重新打开XAML文件。
  • Visual Studio的第二个实例将在异常时中断
  • 您还可以在第二个实例中设置断点
  • 修复错误后,要重新编译,必须停止调试
  • 要再次调试,您可以通过执行Debug> Reattach to process(与以前相同的XDesProc.exe进行附加)来节省时间。

Reattach