none
WebBrowserで表示したページ内任意のTextboxのFocusされた際のTextboxの名前の取得方法 RRS feed

  • 質問

  • ①WebBrowserであるHTMLページを表示する。
    ②HTMLに複数TextBoxがある。
    ③任意TextboxにFocusして入力しようとする。
    ④FocusされたTextBoxの名前を取得したい。

    環境はVS.net2008です。

    ご教授のほど、よろしくお願いします。
    2008年11月16日 12:28

回答

  • とりあえず、ステップ (3) で、「任意」はプログラムにはできないので、ユーザーが
    WebBrowser の画面上で選んでフォーカスを当てると想定。加えて、ステップ (4)

     の「名前」は name 属性のことと理解して・・・

     

    フォーカスを当てた HtmlElement は HtmlDocument.ActiveElement プロパティ

    で取得できます。HtmlElement を取得できれば HtmlElement.GetAttribute("name")

    メソッドの戻り値で「名前」を取得できます。(検証済み)

     

    例えば、以下のような感じ。

     

    Code Snippet

    HtmlElement element = webBrowser1.Document.ActiveElement;
    label1.Text = element.GetAttribute("name");

     

     

    上記の想定、理解が違っていたら連絡ください。

    2008年11月17日 5:24

すべての返信

  • (1) から(4) まですべてプログラムで行うのですか? それともユーザーが表示

    された画面に入力するステップがあるのですか? あるとするとどのステップで

    すか? 

     

    2008年11月17日 3:38
  • 方針としては、現在フォーカスのあるTextBoxを取得する関数をjavascriptで書いておいて、それをVBからInvokeScriptすれば、VB側で取得できるんじゃないかと思います。(未検証です)

    2008年11月17日 4:53
    モデレータ
  • とりあえず、ステップ (3) で、「任意」はプログラムにはできないので、ユーザーが
    WebBrowser の画面上で選んでフォーカスを当てると想定。加えて、ステップ (4)

     の「名前」は name 属性のことと理解して・・・

     

    フォーカスを当てた HtmlElement は HtmlDocument.ActiveElement プロパティ

    で取得できます。HtmlElement を取得できれば HtmlElement.GetAttribute("name")

    メソッドの戻り値で「名前」を取得できます。(検証済み)

     

    例えば、以下のような感じ。

     

    Code Snippet

    HtmlElement element = webBrowser1.Document.ActiveElement;
    label1.Text = element.GetAttribute("name");

     

     

    上記の想定、理解が違っていたら連絡ください。

    2008年11月17日 5:24
  • SurferOnWwwさん

    ご教授ありがとうございます。とても参考になりました。
    検証してうまくいきました。

    二日悩んでたので、これですっきりしました。再度感謝します。
    2008年11月17日 7:34
  • こんにちは。中川俊輔 です。

     

    SurferOnWwwさん、trapemiyaさん、回答ありがとうございます。

     

    Jeshonさん、フォーラムのご利用ありがとうございます。

    有用な情報と思われたため、SurferOnWwwさんの回答へ回答済みチェックをつけさせていただきました。

     

    今後ともフォーラムをよろしくお願いします。

    それでは!

    2008年11月27日 2:55