【发布时间】:2017-12-20 18:53:07
【问题描述】:
在 Visual Basic 6.0 IDE 中,可以中断正在运行的程序,该程序处于空闲状态(等待 UI 线程上的事件)然后按 F8(单步)。之后,任何导致代码的单击、鼠标悬停或其他事件都会导致调试器中断要执行的下一行代码,这将是事件处理程序中的第一行代码。例如,如果您显示了一个带有 OK 按钮的数据输入表单,您可以在空闲时打破该表单,按 F8,然后单击 OK 按钮。然后,调试器将突出显示 cmdOK_Click 事件处理程序中的第一行代码。
有没有办法在 Visual Studio 2017 中使用 C# Winforms 项目执行上述操作?我在 SO 上看到过类似的帖子,它们指示全部中断(Ctrl-Alt-Break)然后按 F11(进入)然后单击表单上的按钮。但这行不通。当我按下 F11 时,程序返回运行模式并处理事件,而不会导致 IDE 中断并显示事件后要执行的第一行。
请注意,在 VB6 IDE 中,当您中断程序然后按 F8 任何 事件,随后触发并导致事件处理程序将导致 IDE 中断。我正在寻找 VS 2017 IDE 和 C# Winforms 程序的类似行为。
注意:请不要建议进入每个偶数处理程序并在代码的第一行设置断点——考虑到一个复杂的程序可能包含数千个事件处理程序,所以设置断点在每个内部都不是一个实用(或优雅)的解决方案。
【问题讨论】:
标签: winforms visual-studio-2017 visual-studio-debugging