webbrowserコントロール上のラジオボタンの変更を取得するには?


dai  2011-05-21 14:29:08  No: 72637  IP: 192.*.*.*

Webbrowserコントロール(webbrowser1.DocumentText)に
StringBuilderで作成した文字列を入れてフォーム上でhtmlを表示しています。

表示しているものは、表形式で、左から、
ラジオボタンフォーム、No(8桁数字、ユニークキー)、ワード
です。
で、ラジオボタンを変更した際(チェックがついた際)に、その都度、選択したラジオボタン行の
Noの値を取得したいのですが、まったく思いつきません。

アドバイスをお願いします。

環境:OS  winXP SP3
VS:2005  .NETFramework2.0

編集 削除
gak  2011-05-23 18:14:17  No: 72638  IP: 192.*.*.*

private void Form1_Load(object sender, EventArgs e)
{
    this.webBrowser1.DocumentText =
        "<html><body><table>" +
        "<tr><td><input type=\"radio\" name=\"radio\" value=\"1\">radio1</td><td>11111111</td></tr>" +
        "<tr><td><input type=\"radio\" name=\"radio\" value=\"2\">radio2</td><td>22222222</td></tr>" +
        "<tr><td><input type=\"radio\" name=\"radio\" value=\"3\">radio3</td></tr>" +
        "</table></body></html>";
}
private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    foreach (HtmlElement tag in this.webBrowser1.Document.Body.GetElementsByTagName("input"))
    {
        if (String.Compare(tag.GetAttribute("type"), "radio") == 0)
        {
            tag.Click += delegate(object s, HtmlElementEventArgs args)
            {
                HtmlElement next = ((HtmlElement)s).Parent.NextSibling;
                MessageBox.Show(next != null ? next.InnerText : "none");
            };
        }
    }
}

デリゲートメソッドの中身をdaiさんの望む形・精度を得られる様に改変すれば良いかと。

編集 削除