gpt4 book ai didi

c# - WinForm 浏览器控件右键单击了哪个元素?

转载 作者:太空宇宙 更新时间:2023-11-03 10:56:34 25 4
gpt4 key购买 nike

我的 WinForms 浏览器控件有 3 个上下文菜单。

BrowserImages、BrowserLinks 和 BrowserDefault。

  1. 右键单击文档的空白区域时加载默认值在
  2. 右键单击链接时显示链接
  3. 当 - 你猜对了 - 右击图像时显示图像。

当 DocumentCompleted 被触发时,我添加了 Document_ContextMenuShowing 事件 - 其代码是:

    /// <summary>
/// Displays the Correct Context Menu for the element that is being right clicked on
/// </summary>
/// <param name="sender">
/// HTMLDocument: The content of the web browser when the right click was detected.
/// </param>
/// <param name="e">
/// HtmlElementEventArgs: Used for getting the location of the mouse so we know where to display the Context Menu
/// </param>
void Document_ContextMenuShowing(object sender, HtmlElementEventArgs e)
{
var res = (HtmlDocument)sender;

if (res.ActiveElement.InnerHtml.ToLowerInvariant().Contains("img"))
{
cmsBrowserImages.Show(e.ClientMousePosition.X, e.ClientMousePosition.Y);
}
else if (res.ActiveElement.InnerHtml.ToLowerInvariant().Contains("href"))
{
cmsBrowserLinks.Show(e.ClientMousePosition.X, e.ClientMousePosition.Y);
}
else
{
cmsBrowserDefault.Show(e.ClientMousePosition.X, e.ClientMousePosition.Y);
}
}

是否有更好、更稳健(效果更好)的方法来做到这一点?首选 C# 代码,但 VB.Net 也可以,很容易重写。

谢谢

最佳答案

我会使用 document.elementFromPoint而不是依赖 document.activeElement

关于c# - WinForm 浏览器控件右键单击了哪个元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19311204/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com