我有以下代码:

private void frmMain_FormClosing(object sender, FormClosingEventArgs e)
    {
        bool isEditing = (bool)webBrowser1.Document.InvokeScript("isEditing");

        MessageBox.Show("End");
        e.Cancel = false;
    }


该程序不会关闭,也不会进入MessageBox.Show("End");取出行bool isEditing = (bool)webBrowser1.Document.InvokeScript("isEditing");使其起作用(并且程序退出)。

isEditing是一个JavaScript函数,如下所示:

function isEditing(){ return editing; } // editing being either true or false


我不知道如何通过C#中的调试控制台获取任何错误消息(尽管如果有人想指出正确的方向,那么我可以回来发布它)。

我最终想要做的是拥有一个脚本,如果我在Web浏览器中进行编辑,它将停止关闭表单。 (但我似乎无法达到第一行!)

我做错了吗?如果是这样,那又怎么了?

谢谢

最佳答案

请注意,如果InvokeScript()调用引发异常(例如,如果isEditing不存在),该异常将被表单捕获,关闭请求将中止。

这可以解释为什么您的代码从不进入MessageBox.Show("End");并且不关闭表单。

您应该能够在Visual Studio的“输出”窗口中看到任何捕获的异常信息,或者可以通过转到Debug->Exceptions菜单并选中“公共语言运行时异常”选项来强制Visual Studio中断任何异常。

07-24 19:32