Foxtable(狐表)用户栏目专家坐堂 → 右键获取控件坐标无果


  共有1952人关注过本帖树形打印复制链接

主题:右键获取控件坐标无果

帅哥,在线噢!
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109467 积分:556997 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/27 20:27:00 [显示全部帖子]

以下代码放到全局代码中

Public Sub web_Document_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs)
Dim webm As System.Windows.Forms.WebBrowser = sender '把触发该事件的Sender转换为WebBrowser
If e.MouseButtonsPressed = MouseButtons.Right Then '如果按键是右键
    'Console.WriteLine(e.MousePosition)
    MessageBox.Show(e.MousePosition.x,e.MousePosition.y)
    'Else If e.MouseButtonsPressed <> MouseButtons.Left ''如果按键不是左键
    If webm.Document.GetElementFromPoint(e.MousePosition) IsNot Nothing Then '如果该点位内容不为空
        MessageBox.Show((webm.Document.GetElementFromPoint(e.MousePosition)).GetAttribute("href")) '显示网址
        'Console.WriteLine(webm.Document.GetElementFromPoint(e.MousePosition).GetAttribute("href")
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109467 积分:556997 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/27 22:03:00 [显示全部帖子]

汗,到vs看了一下,WebBrower 控件没有Document.MouseDown事件。这个应该是别人自己继承扩展的

 回到顶部
帅哥,在线噢!
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109467 积分:556997 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/27 22:37:00 [显示全部帖子]

我错了,可以的
全局代码
Public Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs)
Dim Doc As System.Windows.Forms.HtmlDocument = sender.Document

AddHandler Doc.MouseDown, AddressOf Document_MouseDown
End Sub

Public Sub Document_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.HtmlElementEventArgs)
Dim doc As System.Windows.Forms.HtmlDocument = sender '把触发该事件的Sender转换为WebBrowser
If e.MouseButtonsPressed = MouseButtons.Right Then '如果按键是右键
    'Console.WriteLine(e.MousePosition)
    MessageBox.Show(e.MousePosition.x,e.MousePosition.y)
    'Else If e.MouseButtonsPressed <> MouseButtons.Left ''如果按键不是左键
    If Doc.GetElementFromPoint(e.MousePosition) IsNot Nothing Then '如果该点位内容不为空
        MessageBox.Show((Doc.GetElementFromPoint(e.MousePosition)).GetAttribute("href")) '显示网址
        'Console.WriteLine(webm.Document.GetElementFromPoint(e.MousePosition).GetAttribute("href")
    End If
End If
End Sub

窗口afterload
Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("WebBrowser1").basecontrol
AddHandler web.DocumentCompleted, AddressOf WebBrowser1_DocumentCompleted

[此贴子已经被作者于2016/9/27 22:44:25编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:109467 积分:556997 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/9/29 21:13:00 [显示全部帖子]

只能禁止打开新窗口

全局代码
Public cancelBrowse As Boolean

Public Sub WebBrowser1_Navigating(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs)
e.Cancel = cancelBrowse
End Sub

Public Sub WebBrowser1_NewWindow(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
e.Cancel = cancelBrowse
End Sub

窗口afterlaod

Dim web As System.Windows.Forms.WebBrowser = e.Form.Controls("WebBrowser1").basecontrol

AddHandler web.Navigating, AddressOf WebBrowser1_Navigating

AddHandler web.NewWindow, AddressOf WebBrowser1_NewWindow

cancelBrowse = True

 回到顶部