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

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

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

Re[2]: テキストの中身を消して、カーソルを点滅状態にするには?


(過去ログ 116 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■68486 / inTopicNo.1)  テキストの中身を消して、カーソルを点滅状態にするには?
  
□投稿者/ サトウ (4回)-(2013/10/22(Tue) 21:48:31)

分類:[C#] 

2013/10/22(Tue) 22:21:29 編集(投稿者)
2013/10/22(Tue) 22:00:29 編集(投稿者)

サンプルとして、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=時計");

この後に、このページの
検索用のテキストの時計の文字を消して、
検索用のテキストをマウスクリックして、カーソルを点滅状態にさせたいのですが、
どの様にしたら良いのか分かりません。

つまり、消去して入力できる状態にしたいのですが、分かりません。
下記のように記述してみましたが、なぜかvが入力されてしまいます。
また、カーソルも点滅状態に出来ません。

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].SetAttribute("value", "");

//以下の3つとも駄目でした。
webBrowser1.Document.Body.GetElementsByTagName("p")[0].RaiseEvent("OnMouseDown");

webBrowser1.Document.Body.GetElementsByTagName("p")[0].InvokeMember("mousedown");

webBrowser1.Document.Body.GetElementsByTagName("p")[0].InvokeMember("click");



どなたか分かる方教えてください。



引用返信 編集キー/
■68488 / inTopicNo.2)  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");
}

引用返信 編集キー/
■68539 / inTopicNo.3)  Re[2]: テキストの中身を消して、カーソルを点滅状態にするには?
□投稿者/ サトウ (5回)-(2013/10/26(Sat) 15:02:57)
No68488 (魔界の仮面弁士 さん) に返信
> ■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");
> }

ありがとうございます。
解決出来ました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -