[英]C# UserControl, Add Event Handler Manually
我试图将新的Mouse-click事件处理程序手动添加到Web浏览器控件中,因为Web浏览器在其设计器属性中没有鼠标click事件。
每当用户在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");
}
}
您的代码必须类似于:
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
{
webBrowser1.Document.Body.MouseDown += new HtmlElementEventHandler(Body_MouseDown);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.