我正在尝试为Web browser Control
制作自定义滚动条。
我使用了Scroll Bar Control
,因此我将Scroll Bar Control
附加到Web 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
设置正确吗?
我希望我能用这张图片正确解释我的问题:
答案 0 :(得分:2)
经过一些研究,我发现滚动条maximum
属性必须根据以下公式计算:
scrolbar.maximum=(maxsize-scrolbar.ViewportSize)+scrolbar.smallchanges
所以我只是这样做而且效果很好:
ScrollBar.Maximum = ScrolablePlace.scrollHeight- browser.ActualHeight+ScrollBar.SmallChange;