DOBON.NET DOBON.NETプログラミング掲示板過去ログ

TextBoxの文字列選択について

環境/言語:[WindowsXP VB.NET Framework 1.0]
分類:[.NET]

2004/07/22(Thu) 19:34:08 編集(投稿者)

こんばんわ。

TextBoxがカーソルを取得した時に、TextBox内の文字列を全て選択状態にしたいです。
カーソルを取得した時に選択状態にする処理を行うので、
TextBoxのEnterイベントに以下のソースを書きました。
Tabでカーソルを取得した時は選択状態になるのですが、
マウスでClickした時に選択状態になりませんでした。

----------------------------------------------------------------------------------------
Private Sub textBox1_Enter(ByVal sender As Object, ByVal e As System.EventArgs)
textBox1.SelectionStart = 0
textBox1.SelectionLength = textBox1.Length
End Sub
----------------------------------------------------------------------------------------

Enterにブレイクポイントを置き、デバッグしてみたところClickした時にも
Enterイベントに入ってきていました。
原因がよくわかりません・・・

何かお気づきの方、ご指摘よろしくお願い致します。
passeさんこんばんわ。

> Enterにブレイクポイントを置き、デバッグしてみたところClickした時にも
> Enterイベントに入ってきていました。
> 原因がよくわかりません・・・
>
> 何かお気づきの方、ご指摘よろしくお願い致します。

クリックの場合、Enterイベントの後に、Mouse関係のイベントが発生します。
このイベントに選択が解除されているのでは??
■No5058に返信(passeさんの記事)

> TextBoxがカーソルを取得した時に、TextBox内の文字列を全て選択状態にしたいです。
> カーソルを取得した時に選択状態にする処理を行うので、
> TextBoxのEnterイベントに以下のソースを書きました。
> Tabでカーソルを取得した時は選択状態になるのですが、

TextBoxの全てのテキストを選択する際は、SelectAllメソッドを
使ってみてはどうでしょう・・・。

で、本題ですが、TextBoxにはClickイベントというそれらしき
イベントがあります。
私が確認してるのはVB.NET Framework 1.1ですが、きっとある
と思います。

HelpでTextBoxメンバを参照することをオススメします。
SHさん、ihcioyさん、おはようございます。
レスありがとうございます。

■No5063に返信(SHさんの記事)
> クリックの場合、Enterイベントの後に、Mouse関係のイベントが発生します。
> このイベントに選択が解除されているのでは??
EnterイベントとMouseDownイベントにSystem.Diagnostics.Debug.WriteLine("イベント名")を書いて試したところ
Enterイベント後にMouseDownイベントが発生していました!!
MouseDownイベントにtextBox.selectAll()を書いたところClickした場合でも選択されるようになりました。
ご指摘ありがとうございます。

■No5064に返信(ihcioyさんの記事)
> TextBoxの全てのテキストを選択する際は、SelectAllメソッドを
> 使ってみてはどうでしょう・・・。
SelectAllメソッドも同じ処理をするのですね!
教えて頂きありがとうございます。

> で、本題ですが、TextBoxにはClickイベントというそれらしき
> イベントがあります。
今回Windows.Form.TextBoxを使用していますのでMouseDownイベントにて処理を行う事にしました。

ちなみにヘルプを参照していみるとClickイベントはあるようなのですが、
(TextBoxBase から継承されます)とあり実際ソースでClickイベントを書いてもエラーになっています。
今回使用しているコントロールはWindows.Forms.TextBoxなのでClickイベントは使用出来ないのでしょうか、
それとも書き方が悪いのでしょうか・・・
まだまだ勉強不足ですね(^^;

今回は、MouseDownイベントにてTextBox.SelectAll()をする事に致しました。
ご指摘ありがとうございました。
また何かあった場合、質問いたしますのでその時はよろしくお願いします。
解決済み!

DOBON.NET | プログラミング道 | プログラミング掲示板