none
怎样隐藏WebBrowser的滚动条? RRS feed

  • 问题

  • 在winform的程序中使用了WebBrowser控件浏览网页,我尝试过设置ScrollBarEnabled为false,来隐藏滚动条,但是调试发现,对于有的网页可行,有的网页却不能隐藏。

    调试时在Intellitrace中发现,执行ScrollBarEnabled=false这个语句会引发如下异常:
    已引发:“对 COM 组件的调用返回了错误 HRESULT E_FAIL。”(System.Runtime.InteropServices.COMException) 异常消息 = "对 COM 组件的调用返回了错误 HRESULT E_FAIL。", 异常类型 = "System.Runtime.InteropServices.COMException"

    这是什么原因?有没有更可靠的办法?谢谢!

    • 已编辑 JSHZP 2011年7月19日 6:43 补充
    2011年7月19日 6:03

答案

全部回复

  • hi~

    請參考

    http://www.cnblogs.com/lemony/archive/2007/11/04/948886.html

     

    9、如何使网页不出现滚动条:
    Private Sub mnuScroll1_Click()
    '注意:必须在网页完全显示之后才可以运行
         WebBrowser1.Document.body.Scroll = "no" '不显示滚动条的办法
    End Sub
    Private Sub mnuScroll2_Click()
    '注意:必须在网页完全显示之后才可以运行
         WebBrowser1.Document.body.Scroll = "Auto" '显示滚动条的办法
    End Sub

     

    或參考此:

     

    http://scriptforall.wordpress.com/2008/04/28/web-browsercontent-in-a-c-application/

     

     


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12
    • 已标记为答案 JSHZP 2011年8月26日 5:45
    2011年7月19日 7:23
  • hi~

    請參考

    http://www.cnblogs.com/lemony/archive/2007/11/04/948886.html

     

    9、如何使网页不出现滚动条:
    Private Sub mnuScroll1_Click()
    '注意:必须在网页完全显示之后才可以运行
         WebBrowser1.Document.body.Scroll = "no" '不显示滚动条的办法
    End Sub
    Private Sub mnuScroll2_Click()
    '注意:必须在网页完全显示之后才可以运行
         WebBrowser1.Document.body.Scroll = "Auto" '显示滚动条的办法
    End Sub

     

    或參考此:

     

    http://scriptforall.wordpress.com/2008/04/28/web-browsercontent-in-a-c-application/

     

     


    逐步學習,逐夢踏實;腳步要踩穩,這樣下一步才不會跌倒。 http://www.dotblogs.com.tw/nobel12

    没有找到WebBrowser1.Document.body.Scroll 这个属性呢?我使用的VS2010,c#,是控件的版本问题吗?
    2011年7月20日 3:27
  • 测试以下代码通过:
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();

                webBrowser1.Navigate("http://www.sina.com.cn");
            }

            private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                webBrowser1.Document.Body.SetAttribute("style", "overflow:hidden;");
            }
        }

     

    注意粗体字部分

     


    天行健,君子当自强不息!
    2011年7月20日 6:06
  • 测试以下代码通过:
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();

                webBrowser1.Navigate("http://www.sina.com.cn");
            }

            private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                webBrowser1.Document.Body.SetAttribute("style", "overflow:hidden;");
            }
        }

     

    注意粗体字部分

     


    天行健,君子当自强不息!

    谢谢你的测试!
    这两天我反复测试,发现不管是我在前面提到的设置ScrollBarEnabled=false还是你提供的SetAttribute()方法,都是对于有些网页不能隐藏滚动条。例如访问奇异网站的“http://www.qiyi.com/jilupian/20101021/n88611.html”网页时。

    难道是网站的问题吗?求老师们签定,谢谢!

    2011年7月23日 8:03
  • 测试以下代码通过:
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();

                webBrowser1.Navigate("http://www.sina.com.cn");
            }

            private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                webBrowser1.Document.Body.SetAttribute("style", "overflow:hidden;");
            }
        }

    注意粗体字部分


    天行健,君子当自强不息!

    谢谢你的测试!
    这两天我反复测试,发现不管是我在前面提到的设置ScrollBarEnabled=false还是你提供的SetAttribute()方法,都是对于有些网页不能隐藏滚动条。例如访问奇异网站的“http://www.qiyi.com/jilupian/20101021/n88611.html”网页时。

    难道是网站的问题吗?求老师们签定,谢谢!

    哎,不知道你们这些所谓测试通过都是怎么测的,反正我的环境是VS2010,用的Framework4.0,试试下面的代码吧:

    private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                webBrowser1.Document.Body.Style += "overflow:hidden; ";
            }

    2012年10月16日 4:29