|
■No10303 (くまこ さん) に返信
>>>webBrowserに関する質問です。
>>.NET 2.0 の マネージ WebBrowser という事でよいですよね。
> すみません、意味が分かりません(^^;;
.NET 2.0 には、System.Windows.Forms.WebBrowser が存在しますが、
それ以前のバージョンには、.NET 用の WebBrowser は無かったのです。
以前のバージョンでは、ActiveX 版である「COM ベースの WebBrowser コントロール」が
使われていました(今でも使えますけれどね)。
ActiveX 版の方は、AxWebBrowser と呼ばれる事もあります。
ActiveX 版の方が機能は豊富なのですが、C# からだと、少々扱いにくい設計になっているので、
.NET 2.0 からは、それが System.Windows.Forms.WebBrowser としてカプセル化されています。
> 「.NET のバージョンによって機能が異なるため回答も異なる」から、
> 確認されているのでしょうか…(^^;;
はい。両者(.NET 版と ActiveX 版)はよく似ていますが、同一ではないため、コードも異なります。
>>> 2.また、可能であれば、
>>> 「name="myFormQ1"」や「name="myFormQ2"」に任意の数字を設定し、
>>> 掛け算を実行させたいです。
よく見たら、こちらは「『button』をクリックした時」という条件が無いのですね。
だとするとこうかな。ボタンを押さずとも計算されるようにしてみました。
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
if (e.Url.ToString() != "http://kumako22.web.fc2.com/")
{
return;
}
HtmlElementCollection items = webBrowser1.Document.Forms["myForm"].All;
HtmlElement txtQ1 = items["myFormQ1"];
HtmlElement txtQ2 = items["myFormQ2"];
HtmlElement txtAns = items["myFormA"];
EventHandler calc = delegate
{
string text1 = (string)txtQ1.GetAttribute("value");
string text2 = (string)txtQ2.GetAttribute("value");
double value1, value2;
if (!double.TryParse(text1, out value1)) value1 = Double.NaN;
if (!double.TryParse(text2, out value2)) value2 = Double.NaN;
double result = value1 * value2;
txtAns.SetAttribute("value", result.ToString());
};
txtQ1.AttachEventHandler("onchange", calc);
txtQ2.AttachEventHandler("onchange", calc);
}
|