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

标签 c# .net winforms

与具有枚举 ScrollBars 属性的 RichTextBox 控件不同,WebBrowser 控件只有一个 bool 属性“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 和 .Net 2.0。
  • 尝试使用装有 IE6 和 IE8 的计算机
  • 尝试加载外部页面(使用 .Navigate("someurl") 而不是设置 DocumentText。

最佳答案

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

html, body
{
    overflow: auto;
}

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

参见 http://www.w3schools.com/cssref/pr_pos_overflow.asp

关于c# - 如何仅在需要时才在 .NET WebBrowser 控件上显示垂直滚动条?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7855201/

相关文章:

c# - .NET 服务系统.Net.Sockets.SocketException : 'No such host is known'

c# - MFC中有没有类似DataGridView的控件

c# - 使用事件处理程序尝试 Catch

c# - 分部类中的表单控件属性

c# - System.Linq.Dynamic - 我可以在 WHERE 语句中使用 IN 子句吗

c# - 我是否负责在使用 TaskCreationOptions.LongRunning 标志创建任务后进行清理?

c# - 获取 List<T> 的现有实例

c# - iTextSharp 异常 : PDF header signature not found

c# - async/await whenall 立即返回

c# - .NET 4.0 中的并发优先级队列