C#WebBrowser禁用并隐藏滚动条

时间:2013-10-07 13:06:37

标签: c# javascript winforms webbrowser-control

我的WebBrowser中有Form控件。我允许调用C#表单中的方法的JavaScript

[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的滚动条时,页面会刷新并且滚动条仍然存在。 不知道是什么问题?还有其他方法可以隐藏和禁用scrolllbar吗?

1 个答案:

答案 0 :(得分:2)

在内部,browser.ScrollBarsEnabled通过DOCHOSTUIFLAG_SCROLL_NO设置为IDocHostUIHandler::GetHostInfo标记。 WebBrowser对象必须重新加载文档才能获取新值。

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