Определить, вертикальная прокрутка веб-браузера достигается на последней позиции в C # - PullRequest
0 голосов
/ 11 сентября 2018

Я загружаю содержимое HTML в элемент управления Winforms WebBrowser. И я хочу добавить другой контент 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
}

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 11 сентября 2018

Вы можете попробовать этот подход: установить двустороннюю связь между вашим приложением Winforms (C #) и javascript на стороне браузера, тогда вы сможете вызывать код C # из javascript, например: window.external.GetAdditionalContent ()когда полоса прокрутки достигает дна.

GetAdditionalContent = ваш COM-видимый метод.

Как: реализовать двустороннюю связь между кодом DHTML и клиентским приложениемКод: https://msdn.microsoft.com/en-us/library/a0746166.aspx

Проверка прокрутки пользователем до дна: Проверка прокрутки пользователем до дна

0 голосов
/ 11 сентября 2018

Это будет работать

 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);
...