LoginSignup
2
2

More than 5 years have passed since last update.

画面に設置した<WebBrowser>内のスクロールバーを制御する

Posted at

画面のボタン押下でスクロールバーを上下に動かしたい

画面ブラウザを設置

xaml
<Button Click="UpBrowserButton_Click"/>
<Button Click="DownBrowserButton_Click"/>
<WebBrowser Name="browser" source="http://hoge.piyo" Height="800"/>
C#
private void UpBrowserButton_Click(object sender, RoutedEventArgs e)
{
    mshtml.HTMLDocument doc = browser.Document as mshtml.HTMLDocument;
    if (doc.IsNotNull() && doc.parentWindow.IsNotNull())
    {
        if (doc.frames.length == 0)
        {
            doc.parentWindow.scrollBy(0, -300);
        }
        else
        {
            // サイトがフレームで分かれている場合の処理
            for (int i = 0; i < doc.frames.length - 1; i++)
            {
                var frame = doc.frames.item(i) as mshtml.HTMLWindow2Class;
                frame.document.parentWindow.scrollBy(0, -300);
            }
        }
    }
}

private void DownBrowserButton_Click(object sender, RoutedEventArgs e)
{
    mshtml.HTMLDocument doc = browser.Document as mshtml.HTMLDocument;
    if (doc.IsNotNull() && doc.parentWindow.IsNotNull())
    {
        if (doc.frames.length == 0)
        {
            doc.parentWindow.scrollBy(0, 300);
        }
        else
        {
            // サイトがフレームで分かれている場合の処理
            for (int i = 0; i < doc.frames.length - 1; i++)
            {
                var frame = doc.frames.item(i) as mshtml.HTMLWindow2Class;
                frame.document.parentWindow.scrollBy(0, 300);
            }
        }
    }
}

上記の場合、フレームの数だけ処理してるけど、表示してるフレームだけ処理するほうがいいんやけどなー。
ちょっと力尽きたorz

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2