允许使用鼠标滚动但不显示浏览器滚动条?

时间:2011-10-03 18:46:40

标签: c# .net winforms

我有一个带有Web浏览器的表单,我不想在Web浏览器中显示滚动条,但我希望允许用户使用鼠标滚轮向下滚动网站。

我该怎么做?

感谢。

1 个答案:

答案 0 :(得分:4)

修改

经过大量工作,我得到了一个解决方案!

我使用VB.net然后将其转换为C#:

private void WebBrowser1_DocumentCompleted(object sender, System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e)
{
    WebBrowser1.Document.Body.Style = "overflow:hidden";
    HtmlElement head = WebBrowser1.Document.GetElementsByTagName("head")[0];
    HtmlElement scriptEl = WebBrowser1.Document.CreateElement("script");
    scriptEl.SetAttribute("language", "javascript");
    scriptEl.InnerHtml = My.Resources.TextFile1;
    head.AppendChild(scriptEl);
}

现在,将此文本文件添加到您的资源(或任何地方)。

function handle(delta) {
        window.scrollBy(0,-delta*20)
}

function wheel(event){
        var delta = 0;
        if (!event)
                event = window.event;
        if (event.wheelDelta) {
                delta = event.wheelDelta/120;
        }
        if (delta)
                handle(delta);
        if (event.preventDefault)
                event.preventDefault();
    event.returnValue = false;
}

if (window.addEventListener)
    window.onmousewheel = document.onmousewheel = wheel;

现在,在它显示scriptEl.innherHtml = My.Resources.TextFile1;的行上,只需输入第二个文件(javascript)。

window.scrollBy(0,-delta*20)行上,将20更改为您认为最适合正常滚动的数字。 20对我来说很体面。

需要将C#代码放在WebBrowser对象的'DocumentComplete'事件中。

希望有所帮助!它对我有用:)