1

我正在尝试为Web browser Control.

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值总是大于滚动条的地方。剂量ScrollBar.ViewportSizeScrollBar.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 回答