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 }
  • 相关阅读:
    PAT 甲级 1027 Colors in Mars
    PAT 甲级 1026 Table Tennis(模拟)
    PAT 甲级 1025 PAT Ranking
    PAT 甲级 1024 Palindromic Number
    PAT 甲级 1023 Have Fun with Numbers
    PAT 甲级 1021 Deepest Root (并查集,树的遍历)
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯VIP 算法训练 无权最长链
    Java实现 蓝桥杯 算法提高 抽卡游戏
    Java实现 蓝桥杯 算法提高 抽卡游戏
  • 原文地址:https://www.cnblogs.com/baoconghui/p/2676935.html
Copyright © 2011-2022 走看看