【问题标题】:Identify web browser's vertical scroll is reached on last position in c#识别 Web 浏览器的垂直滚动到达 c# 中的最后一个位置
【发布时间】:2018-09-11 05:36:14
【问题描述】:

我已在 Winforms 的 WebBrowser 控件中加载 HTML 内容。我想在在最后一个位置达到垂直滚动时附加另一个 HTML 内容。所以我坚持它我怎么能实现它。

这是我的示例代码:

WebBrowser web = new WebBrowser();
web.Document.Write("Some html content");
web.Document.Window.AttachEventHandler("onscroll", OnScrollEventHandler); // Create scroll event for browser control

private void OnScrollEventHandler(object sender, EventArgs e)
{
    // Identify vertical scroll reached on last position and append another HTML
}

提前致谢。

【问题讨论】:

标签: c# .net winforms user-interface webbrowser-control


【解决方案1】:

这会起作用

 class KeyHandle
 {
    private static Int32 WM_KEYDOWN = 0x100;
    private static Int32 WM_KEYUP = 0x101;

    [return: MarshalAs(UnmanagedType.Bool)]
    [DllImport("user32.dll", SetLastError = true)]
    static extern bool PostMessage(IntPtr hWnd, int Msg, 
   System.Windows.Forms.Keys wParam, int lParam);

 public static void SendKey(IntPtr hWnd, System.Windows.Forms.Keys key)
  {
      PostMessage(hWnd, WM_KEYDOWN, key, 0);
   }
 }

调用方法:

     KeyHandle.SendKey(this.webBrowser.Handle, Keys.PageDown);

【讨论】:

    【解决方案2】:

    您可以尝试这种方法:在您的 Winforms 应用程序 (C#) 和浏览器端 javascript 之间进行双向通信,然后您就可以从 javascript 调用 C# 代码,如下所示:window.external.GetAdditionalContent()当滚动条到达底部时。

    GetAdditionalContent = 您的 COM 可见方法。

    如何:在 DHTML 代码和客户端应用程序代码之间实现双向通信: https://msdn.microsoft.com/en-us/library/a0746166.aspx

    检查用户是否滚动到底部: Check if a user has scrolled to the bottom

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 1970-01-01
      • 1970-01-01
      • 2015-12-06
      • 1970-01-01
      • 2016-04-28
      • 2013-12-11
      相关资源
      最近更新 更多