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

时间:2011-10-21 20:56:51

标签: c# .net 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);
    }

Output of code sample, notice the vertical scrollbar

尝试了其他事情:

  • 尝试.Net 4.0,&amp; .Net 2.0。
  • 尝试使用IE6和IE8的计算机
  • 尝试加载外部页面(使用.Navigate(“someurl”)而不是设置DocumentText。

1 个答案:

答案 0 :(得分:6)

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

html, body
{
    overflow: auto;
}

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

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