DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

埋め込まれたHTMLを表示する

アセンブリファイルにリソースとしてHTMLファイルを埋め込み、表示する方法を紹介します。埋め込まれたHTMLファイルを一時ファイルに書き込み、それを表示するようにすれば済む話ですが、ここでは直接表示する方法を紹介します。

Internet Explorer 4以降(?)では、res://プロトコルがサポートされています。これは、埋め込まれているリソースを表示するものですので、これを使えば埋め込んだHTMLファイルを表示できます。ところが、res://で対応しているリソースはWin32リソースで、これは通常.NET Frameworkで使用されるマネージリソースとは異なります。

.NETでWin32リソースを埋め込む方法は、「Win32リソースを実行ファイルに埋め込む」で詳しく紹介していますので、そちらをご覧ください。

埋め込まれたHTMLの表示法

Win32リソースとして埋め込まれたリソースへは、Internet Explorerから、

res://(アセンブリファイルのフルパス)/(リソース名)

としてアクセスできます。例えばリソース名を"README.HTML"とした場合は、

res://(アセンブリファイルのフルパス)/README.HTML

で埋め込まれたHTMLが表示されます。

最後に、Microsoft Web Browserコントロールで自分自身のアセンブリに埋め込んだHTML(リソース名が"README.HTML")を表示する例を示します。ラッパーDLLが作成されており、これを使用するものとします。

VB.NET
コードを隠すコードを選択
Dim url As String = "res://" + _
    System.Reflection.Assembly.GetExecutingAssembly().Location + _
    "/README.HTML"

'WebBrowserに表示する
AxWebBrowser1.Navigate(url)
C#
コードを隠すコードを選択
string url = "res://" +
    System.Reflection.Assembly.GetExecutingAssembly().Location +
    "/README.HTML";

//WebBrowserに表示する
object refmissing = System.Reflection.Missing.Value;
AxWebBrowser1.Navigate(url,
    ref refmissing, ref refmissing, 
    ref refmissing, ref refmissing);
  • 履歴:
  • 2010/4/26 Win32リソースを埋め込む方法を別ページに移す。
  • 2013/7/7 誤字修正。

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。