DOBON.NET DOBON.NETプログラミング掲示板過去ログ

タブブラウザの進む・戻るページの確認・・・

環境/言語:[XP C# Framework1.1]
分類:[.NET]

いつも皆様の書き込みを拝見し、参考にさせて頂いております。
現在、C#のFraneWork1.1環境にてタブブラウザを開発中なのですが、
解決できない問題があり、皆様のお知恵をお借りしたく、書き込みをさせていただきました。

というのも、タブを切り替えたときに、そのタブの中にあるブラウザが
進む・戻るページを保持しているのかを知るすべがなく、困っています。

タブ1には戻るページがあったとすると、もちろん戻るボタンが押下できる状態にあるのですが、そこから新しいタブ2を開いたときに進む・戻るページを調べ、ボタンの押下有効無効を決めたいのですが、どうすれば見つけることができるでしょうか・・・

現在は下記URLのコードを参考にCommandStateChangeイベントで確認をしております。

/// <summary>
/// ブラウザの進む・戻るの確認。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void axWebBrowser1_CommandStateChange(object sender, AxSHDocVw.DWebBrowserEvents2_CommandStateChangeEvent e)
{
const uint CSC_UPDATECOMMANDS = 0xFFFFFFFF;
const uint CSC_NAVIGATEFORWARD = 0x00000001;
const uint CSC_NAVIGATEBACK = 0x00000002;

switch((uint)e.command)
{
case CSC_NAVIGATEFORWARD:
this.ubtnForward.Enabled = e.enable;
break;
case CSC_NAVIGATEBACK:
this.ubtnBack.Enabled = e.enable;
break;
}
}

参考元:http://ukamen.hp.infoseek.co.jp/Programming1/WebBrowser/index.htm

タブが切り替わったイベントでこの処理ができればよいのですが・・・・
ご鞭撻のほど宜しくお願い致します。
新しいタブを開いたときはブラウザコントロールも新しいものになってるはずですから、
戻るも進むも無いんではないですか?

タブを切り替えたときって話なら、Hashtable を使って管理するなりなんなりすればいいかと。
// Key をブラウザコントロールに、Value をブラウザの状態を保持する自作クラスにって感じですかね。
AxWebBrowser を派生させて自分自身で管理するとか。
Hongliangさん>
ご回答ありがとうございます。
> 戻るも進むも無いんではないですか?
まさにそのとおりです。常に新しいものの場合はボタンを初期化すればいいわけですが、
タブ2にも進む・戻るページができた場合にタブを切り替えたタイミングで知ることはできないかなと思いまして。。

> タブを切り替えたときって話なら、Hashtable を使って管理するなりなんなりすればいいかと。
> // Key をブラウザコントロールに、Value をブラウザの状態を保持する自作クラスにって感じですかね。
> AxWebBrowser を派生させて自分自身で管理するとか。
なるほど。。やはり独自で管理するしかないのでしょうか。。
タブにぶら下がっているAxWebBrowserからなんとか簡単に引っ張ることができないかと思っていたのですが・・・(=_=;


ご回答ありがとうございます<(_ _)>

DOBON.NET | プログラミング道 | プログラミング掲示板