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