zoukankan      html  css  js  c++  java
  • 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 }
  • 相关阅读:
    pidgin的未认证解决办法
    题解【洛谷P1074】[NOIP2009]靶形数独
    题解【洛谷P1315】[NOIP2011]观光公交
    题解【BZOJ4145】「AMPPZ2014」The Prices
    题解【洛谷P4588】[TJOI2018]数学计算
    题解【洛谷P3884】[JLOI2009]二叉树问题
    题解【SP8002】HORRIBLE
    树链剖分学习笔记
    题解【洛谷P1807】最长路_NOI导刊2010提高(07)
    题解【洛谷P1995】口袋的天空
  • 原文地址:https://www.cnblogs.com/baoconghui/p/2676935.html
Copyright © 2011-2022 走看看