C# Web 浏览器禁用和隐藏滚动条

本文关键字:隐藏 滚动条 Web 浏览器 | 更新日期: 2023-09-27 18:34:09

我的Form中有WebBrowser控制权。 并且我允许JavaScript以 C# 形式调用方法:

[ComVisible(true)]
public class ScriptManager
{
            // Variable to store the form of type Form1.
        private Form1 mForm;
        // Constructor.
        public ScriptManager(Form1 form)
        {
            // Save the form so it can be referenced later.
            mForm = form;
        }
        // This method can be called from JavaScript.
        public void EnterFullScreenMode()
        {
            // Call a method on the form.
            mForm.EnterFullScreenMode();
        }
      }

在形式中,我包括此方法:

public void EnterFullScreenMode()
{
    browser.ScrollBarsEnabled = false;
}

我注意到,当我调用此方法删除WebBrowser的滚动条时,页面会刷新并且滚动条仍然存在。知道问题出在哪里吗?还有其他方法可以隐藏和禁用滚动条吗?

C# Web 浏览器禁用和隐藏滚动条

在内部,browser.ScrollBarsEnabled通过 IDocHostUIHandler::GetHostInformation 作为DOCHOSTUIFLAG_SCROLL_NO标志配置。WebBrowser对象必须重新加载文档才能选取新值。

我建议在表单中InitializeComponent()后将browser.ScrollBarsEnabled设置为false一次,然后使用 CSS 控制滚动:<body style="overflow: auto">...</body>将使滚动条自动,style="overflow: hidden"会使它们消失。