C#UserControl,手动添加事件处理程序

时间:2017-07-28 08:15:17

标签: c# winforms event-handling

我正在尝试手动将新的鼠标单击事件处理程序添加到我的Web浏览器控件,因为Web浏览器的设计器属性中没有鼠标单击事件。

每当用户在Web浏览器控件中单击时,我都需要运行代码。此解决方法通过其现有的DocumentCompleted事件处理程序添加了Web浏览器所没有的处理程序。

当我运行下面的代码时,它返回一个空异常。我想知道是否可以这样做。

编辑:我添加了while循环以确保webbrowser1完成加载。但是,现在它陷入了while循环。这是否意味着网页加载永远不会完成?

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    try
    {
        while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
        {
            Application.DoEvents();
        }
        webBrowser1.Document.Body.MouseDown += new HtmlElementEventHandler(Body_MouseDown);
    }
    catch (Exception ex)
    {
        Debug.WriteLine(ex.StackTrace);
        Debug.WriteLine(ex.Message);
    }
}

private void Body_MouseDown(Object sender, HtmlElementEventArgs e)
{
    if( e.MouseButtonsPressed == MouseButtons.Left)
    { 
        MessageBox.Show("File in web browser selected");
    }
}

1 个答案:

答案 0 :(得分:0)

您的代码必须如下:

def after_sign_in_path_for(resource)
  root_path # <- The page you want redirect to after logged in
end