0

私はウェブブラウザに表示したいウェブページを持っているビジュアルスタジオプロジェクトに取り組んでいます。現在私はすべての必要なhtml、js、cssファイルをコピーしたresourcesという名前のフォルダを持っていますが、プロジェクトでどのように指し示すべきかわかりません。何か案は?ありがとうございました。ビジュアルスタジオフォーム:ビジュアルスタジオウェブブラウザにローカルindex.htmlファイルを追加

コード:

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.IO; 
using System.Linq; 
using System.Reflection; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace WindowsFormsApp1 
{ 
    public partial class Form1 : Form 
    { 
     public Form1() 
     { 
      InitializeComponent(); 
     } 
     private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) 
     { 

     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      string appPath = Assembly.GetEntryAssembly().Location; 
      string filename = Path.Combine(Path.GetDirectoryName(appPath), "resources\\index.html"); 
      notes.Navigate(filename); 
     } 
    } 
} 

はありがとうございます。

更新

私は、プロジェクトに直接リソースフォルダの内容を貼り付けて、URLで提案されている複数のオプションを試してみました。残念なことに、何も動作していない、私はVisualスタジオに新しいので、何がうまくいかないのか考えていない。更新されたコード:

private void Form1_Load(object sender, EventArgs e) 
     { 
      //string curDir = Directory.GetCurrentDirectory(); 
      //this.notes.Url = new Uri(String.Format("file:///resources/index.html", curDir)); 
      string applicationDirectory = Path.GetDirectoryName(Application.ExecutablePath); 
      string myFile = Path.Combine(applicationDirectory, "index.html"); 
      notes.Url = new Uri("file:///" + myFile); 
     } 
+2

[C#WebBrowserでローカルHTMLファイルを読み込む](https://stackoverflow.com/questions/7194851/load-local-html-file-in-ac-sharp)の可能な複製-webbrowser) – Sinatr

+0

@Sinatr:あなたが与えたリンクで解決しようとしましたが、白いページしか表示されません。プロジェクトに直接存在するindex.htmlファイルがあります。更新されたコードを確認してください。ありがとうございました。 :-) –

+0

'index.html'の内容は何ですか(それは空白かもしれません)? 'myFile'にはどのような値があり、' index.html'は実際にどこにあるのですか(Windowsエクスプローラのパス)。 – Sinatr

答えて

0

デスクトップアプリ(リサイズアプリでボタンなど、「ブラウザで表示」)から、ブラウザでリンクを開きたい場合は、それがhereを議論していますように、あなたがSystem.Diagnostics.Process.Start("http://localhost:42")を使用することができます(生産コードしますいくつかの非ローカルホストのリンクがあります)。

これまでにhost your website on local IISにポート番号(たとえば42)を指定する必要があります。

一方、Webアプリケーション(C#バックエンドコードを使用)を作成する場合は、別のタイプのプロジェクト(WinFormsではなく)を使用する必要があります。 ASP.NET MVC

編集: System.Diagnostics.Process.Startは、ローカルファイルでも動作します。 System.Diagnostics.Process.Start(@"C:\Sites\index.html");

EDIT 2: application directoryなども使用できます。 System.Diagnostics.Process.Start(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"site\index.html"))あなたのアプリケーションに相対パスを保持する

+0

私たちは、サーバーとインターネットなしでexeが実行されたときに実行できるパッケージ化されたアプリケーションの作成にもっと興味があります。だから私は最初にVisual Studioを使用しています。そうでなければ、他のプラットフォームでも簡単にこれを行うことができます。どのようなアイデアを私は間違って何ですか?ありがとうございました。 –

+0

とにかく、プロジェクト内にファイルを置いて、相対パスで作業できますか?後でパッケージ化したいので絶対的ではありません。ありがとうございました。 –

+0

デスクトップアプリケーションから静的なページ(index.htmlなど)を呼び出したいですか?はいの場合は、EDITの後に説明したように静的ページを開くことができます。静的ページは、アプリケーションフォルダに格納し、相対パスで呼び出すことができます。 –

関連する問題