• TabControl 切换 内嵌web页面直接响应滚动事件


    TabControl 切换 内嵌页面直接滚动
     
    事件背景:系统是个winfrom应用程序,程序只有一个主界面。界面中一个TabControl,每个TabPage其实是一个WebBrowser。
    存在的问题:TabControl选择项切换时,每次都要在页面上点击下,才能滚动。
    修复后的效果:不点击直接可以用鼠标滚动页面。
     
    思考经过:
    我首先想到是在页面上获取首个元素,直接激活或者设置焦点。结果没有反映。
    之后我想模拟下点击事件,使用InvokeMember实现body的点击事件后,发现时灵时不灵。
     
    最终在尝试性的设置body焦点竟然成功了!现在将代码记录如下:
     1  private void tabMain_SelectedIndexChanged(object sender, EventArgs e)
     2  {
     3            Control [] controls = tabMain.SelectedTab.Controls.Find("WB_Page"false);
     4            foreach (Control control in controls)
     5            {
     6                var webBrowser = control as WebBrowser;
     7                if (webBrowser != null && webBrowser.Document != null)
     8                {
     9                    HtmlElementCollection elements = webBrowser.Document.GetElementsByTagName("body");
    10                    if (elements != null && elements.Count > 0)
    11                    {
    12                        elements[0].Focus();
    13                        break;
    14                    }
    15                }
    16            }
    17 }
  • 相关阅读:
    mysql复合索引的优点和注意事项
    linux服务器时间更新
    mysql慢日志
    Proftpd linux服务器FTP安装配置
    js 截取字符串
    在工信部注销网站备案
    史玉柱传奇
    css white-space属性
    获取微信授权
    禁用ipv6
  • 原文地址:https://www.cnblogs.com/baoconghui/p/2676935.html
Copyright © 2020-2023  润新知