none
请问WinForm程序中的Web浏览器控件,如何加载一些嵌入到程序中的资源文件(html/css)? RRS feed

  • 问题

  • 我的一个WinForm的程序中使用了WebBrowser控件,程序启动的时候要加载一个HTML文件和若干CSS文件,我特别希望这些HTML、CSS文件是直接打包在exe程序里面的,所以想请教一下:

    1、如何将HTML、CSS这类文件类型的文件嵌入到应用程序中?

    2、在WebBrowser控件中如何加载这些嵌入的文件?


    da jia hao!

    2014年3月11日 11:50

答案

  • 你好:

    假如你现在有一个html页面叫MyHtml.html,还有一个css文件放在css目录下面,名字叫MyCss.css。

    首先添加对Microsoft.mshtml的引用(右击项目》添加引用》拓展》Microsoft.mshtml),然后给Webbrowser控件添加一个DocumentCompleted事件方法,具体代码请参考以下:

    private void Form1_Load(object sender, EventArgs e)
            {
                string html = File.ReadAllText("MyHtmlPage.html");
                this.webBrowser1.DocumentText = html;
            }
    
            private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                mshtml.HTMLDocument CurrentDocument = (mshtml.HTMLDocument)this.webBrowser1.Document.DomDocument;
                mshtml.IHTMLStyleSheet styleSheet = CurrentDocument.createStyleSheet();
                string css = File.ReadAllText(@"css/MyCss.css");
                styleSheet.cssText = css;
            }


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年3月12日 11:32
    版主

全部回复

  • 1.通过设置文件类型(嵌入式资源)来加入到应用程序中。

    2.读取资源文件后,转换为wb的请求对象(html)赋值给wb,不过没试过css怎么加上去。你可以自己研究研究。


    family as water

    2014年3月12日 3:09
  • 最差直接吧css放到html中。

    family as water

    2014年3月12日 3:10
  • 有没有代码参考一下啊?

    另外资源文件读出来的,不是stream就是string对象,根本没法传给浏览器控件啊?


    da jia hao!

    2014年3月12日 6:46
  • 你好:

    假如你现在有一个html页面叫MyHtml.html,还有一个css文件放在css目录下面,名字叫MyCss.css。

    首先添加对Microsoft.mshtml的引用(右击项目》添加引用》拓展》Microsoft.mshtml),然后给Webbrowser控件添加一个DocumentCompleted事件方法,具体代码请参考以下:

    private void Form1_Load(object sender, EventArgs e)
            {
                string html = File.ReadAllText("MyHtmlPage.html");
                this.webBrowser1.DocumentText = html;
            }
    
            private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                mshtml.HTMLDocument CurrentDocument = (mshtml.HTMLDocument)this.webBrowser1.Document.DomDocument;
                mshtml.IHTMLStyleSheet styleSheet = CurrentDocument.createStyleSheet();
                string css = File.ReadAllText(@"css/MyCss.css");
                styleSheet.cssText = css;
            }


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年3月12日 11:32
    版主