C#
Xaml

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

More than 1 year has passed since last update.

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

画面ブラウザを設置

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