1

のカスタム スクロール バーを作成しようとしていますWeb browser Control

私はこれに a を使用したので、 次のコードを使用するためScroll Bar Controlに添付しました:Scroll Bar ControlWeb browser Control

        Doc = (mshtml.HTMLDocument)browser.Document;
        Doc.parentWindow.document.body.style.overflow = "hidden";
        mshtml.IHTMLElement2 ScrolablePlace= (mshtml.IHTMLElement2)Doc.getElementById("ScrolablePlace");
        ScrollBar.ViewportSize = browser.ActualHeight;
        ScrollBar.Maximum = ScrolablePlace.scrollHeight;

スクロールバーをスクロールしている間:

 private void ScrollBar_Scroll(object sender, ScrollEventArgs e)
        {
            if (Doc != null)
            {
                Doc.parentWindow.scroll(0, (int)e.NewValue);
            }
        }

これは機能しますが、ScrollBar.Maximum値は常にスクロール バーの place.dose よりも大きく、ScrollBar.ViewportSize 正しくScrollBar.Maximum 設定されていますか?

この画像で私の問題を正しく説明できることを願っています:

ここに画像の説明を入力

4

1 に答える 1

2

いくつかの調査の後、スクロールバーのmaximumプロパティは次の式から計算する必要があることがわかりました。

scrolbar.maximum=(maxsize-scrolbar.ViewportSize)+scrolbar.smallchanges

だから私は単にこれを行うだけでうまくいきます:

   ScrollBar.Maximum = ScrolablePlace.scrollHeight- browser.ActualHeight+ScrollBar.SmallChange;
于 2013-02-03T07:35:00.997 に答える