C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 116 を表示中)
■68488 / )  Re[1]: テキストの中身を消して、カーソルを点滅状態にするには?
□投稿者/ 魔界の仮面弁士 (391回)-(2013/10/22(Tue) 22:21:56)
No68486 (サトウ さん) に返信
> サンプルとして、Yahooを用いさせて頂きます。
> webBrowser1.Navigate("http://search.yahoo.co.jp/search?p=時計&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=-1&oq=時計");
本来は、「時計」の部分にパーセントエンコーディングを施すべきですけれどね。


> webBrowser1.Document.Body.GetElementsByTagName("p")[0].InvokeMember("click");
click メソッドでは無く、"focus" メソッドを呼び出しましょう。


> 検索用のテキストの時計の文字を消して、
> 検索用のテキストをマウスクリックして、カーソルを点滅状態にさせたいのですが、
テキストボックスが複数ありますが、すべてのボックスの文字を消すのですか?

複数のボックスに入力カーソルを同時に当てるのは無理だと思うので、
最初に見つかったテキストボックスだけにフォーカスを当てるとすれば、
たとえばこんな感じ。


private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    var boxes = webBrowser1.Document.GetElementsByTagName("INPUT").OfType<HtmlElement>()
                .Where(txt => txt.GetAttribute("TYPE").ToLowerInvariant() == "text").ToList();
    boxes.ForEach(txt => txt.SetAttribute("value", ""));
    boxes[0].InvokeMember("focus");
}

返信 編集キー/


管理者用

- Child Tree -