如何仅在需要时在.NET WebBrowser控件上显示垂直滚动条?

bla*_*k3r 4 .net c# winforms

与具有枚举ScrollBars属性的RichTextBox控件不同,WebBrowser控件只有一个布尔属性"ScrollBarsEnabled".

设置ScrollBarsEnabled = True,垂直滚动条始终显示(即使不需要).水平滚动条的行为与预期的一样,只在需要时才会出现.

设置ScrollBarsEnabled = False; 滚动条都没有显示出来.

示例代码:

 public Form1()
    {
        InitializeComponent();

        WebBrowser webBrowser1 = new WebBrowser();

        webBrowser1.Size = new Size(this.Width - 50, this.Height - 50);
        webBrowser1.Location = new Point(25, 10);
        webBrowser1.AllowWebBrowserDrop = false;
        webBrowser1.ScrollBarsEnabled = true;

        string preText = "<html><head></head><body><div>";
        string bodyText = "Hello World";
        string postText = "</body></div></html>";
        webBrowser1.DocumentText = preText + bodyText + postText;


        this.Controls.Add(webBrowser1);
    }
Run Code Online (Sandbox Code Playgroud)

输出代码示例,注意垂直滚动条

其他事情尝试过:

  • 试过.Net 4.0,和.Net 2.0.
  • 试过有IE6和IE8的电脑
  • 尝试加载外部页面(使用.Navigate("someurl")而不是设置DocumentText.

Wil*_*ill 6

滚动条可以通过CSS在大多数浏览器中控制,但只有在您控制内容时才有用:

html, body
{
    overflow: auto;
}
Run Code Online (Sandbox Code Playgroud)

当然,WebBrowser控件是否尊重这一点还有待观察.

请参阅http://www.w3schools.com/cssref/pr_pos_overflow.asp