掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
マウスクリック時にTextBoxの文字列反転表示をするには? (ID:119296)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
う〜ん。ボクも過去ログではよく分からなかったのですが、 …どうしよう。とりあえず丸付き数字は機種依存なので置き換えますw(質問に関係ない。 >(1)1回目のクリック時は文字列反転表示 >(2)2回目のクリック時はクリックした文字の箇所にカーソルが移動して、その箇所から文字列が編集可能 まず最初に、原因が何かは分かってるのかな?各イベントに Debug.WriteLine("TextBox1_Enter") とか書いてちゃんとデバッグしてみて下さい。分かるはずですよ? >Enterイベントで.SelectAllを使用しても反応がありませんでした。 …なんて事はウソで、イベントの発生する順番が原因みたい。 Enter GotFocus MouseDown の順で発生するから Enter や GotFocus で全選択しても MouseDown でカーソル位置が変更されて終了ーなだけだねぇ。 で、MouseDown に限って言えば(2)の処理と全く同じだからこの中だけ で判別して処理を分岐するのは難しいのかも(?) ボクがやるとしたら Enter イベントからタイマー使って MouseDown の 後で全選択処理を入れるかなぁ?…まぁ、引数にテキストボックス 渡しのクラス化を考えます。フラグでの処理でもいいと思います。ただ、 モジュールレベルの変数にはしません。下手するとテキストボックスの 数だけ用意しないといけなくなりますから。でもクラス化はカスタム コントロールを作成するのと根本的な考え方が同じだと思います…。 >(そういうカスタムコントロールを作成すればいいんですが、、、) 何か不満がありそうなので没ですかね。今のところ思い付いた処理は 2つ以上のイベントが関係してしまうので Enter イベントのみに 関数呼び出しを書くとして、すっきり書くにはクラス化必須ですねぇ。 案外 TextBox1.Tag にフラグ設定するのが一番簡単かも?。Enter と MouseDown イベントのみで処理できるんじゃないかと。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.