まずは、適当なフォームにコントロールを貼り付けてみる。
コントロールのプロパティにURLを指定しておくだけで既にページを見る事ができるし、リンクを選択すれば、そのページに移動する事もできる。
デフォルトで右クリックのコンテキストメニューが活きているので基本的な操作は既にできる状態になっている。
ちょっとしたブラウザとして体裁を整える為にメニューバーを追加する事にし、ツールボックスからmenuStripをドロップする。
ついでにツールバーも追加するべくtoolStripもドロップする。
メニューは、ページの保存や印刷、ページ設定などコントロールの持つ機能を適当に呼び出すように追加してみる。
ツールバーには、戻るや進むのボタンと、URLを直接入力したり、現在のページのURLを表示する為のテキストボックスを用意する。
どれもメソッドが用意されているので呼び出すだけだが。
URL表示のテキストボックスを用意しようと思ったが、履歴の残る方が良さそうなのでコンボボックスにしてみる。
メニューバーとツールバーを適当に追加するとこんな感じになる。↓ここまでコーディングは無し。
ツールバーのボタンイベントには以下を適当に指定。
webBrowser1.GoBack();
webBrowser1.GoForward();
webBrowser1.Refresh();
webBrowser1.Stop();
webBrowser1.GoHome();
コンボボックスは直接入力すればそのURLに移動し、ページを移動したら、移動先のURLをリストから検索し、無ければ追加し、あればそれを選択状態にするようにコードを追加する。
これで移動したページのURLがリストされる。
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
int intMatch = new int();
this.Text = webBrowser1.DocumentTitle.ToString();
intMatch = toolStripComboBox1.FindStringExact(webBrowser1.Url.ToString());
if (intMatch != -1)
{
toolStripComboBox1.SelectedIndex = intMatch;
}
else
{
toolStripComboBox1.Items.Insert(0, webBrowser1.Url.ToString());
toolStripComboBox1.SelectedIndex = 0;
}
}
おっと、何の考えも無しにDocumentCompletedイベントに追加したけど、不正なURLだったりした時とか、考えてなかった。入力時にチェックしないと駄目か。
コントロールには、ページを保存するメソッドもあるのでメニューから呼び出せるようにしてみる。
webBrowser1.ShowSaveAsDialog();
ページ設定や印刷プレビュー、印刷と基本的に呼び出すだけで使用できる機能が揃っている。
ページ設定はShowPageSetupDialogで、
webBrowser1.ShowPageSetupDialog();
印刷プレビューはShowPrintPreview、
webBrowser1.ShowPrintPreviewDialog();
印刷にはShowPrintDialog、
webBrowser1.ShowPrintDialog();
現在のドキュメントのプロパティは、ShowPropertiesDialog、
webBrowser1.ShowPropertiesDialog();
ホームボタンを操作するとホームに設定されているページに移動するが、このようなシステムで共通に設定されている部分は、WebBrowserコントロールから直接操作するメソッドは無いようなので、コントロールパネルから該当する機能を呼び出す。
ヘルプから検索するが、見つからない。hoge.cplを実行すれば良いのかな?っと思ってググるとここにそのものずばりが。
System.Diagnostics.Process.Start("inetcpl.cpl");
後はブックマークの機能を実装してやれば、体裁は整ってしまう。