[OSのVer]:Windows [VBのVer]:VB.NET テキストボックスに書かれている文をすべての編集を不可能にしたいです。 KeyPress でe.Handled = True と打っても、日本語だと文章が打ててしまうし、テキストボックスをクリックするとカーソル位置の「|←こんなの」が出てしまいます。 編集不可能にして、|← を消す方法はありますか?テキストボックスをクリックすると、テキストボックスの色を変えたいので、.Enabled = False は使えません(TT)
Labelを使えばよいのではないでしょうか?ってそんな簡単な話ではないですかね?
簡単な方法なら下記でもいいかと、入力したい場合はフラグでも立てるとかすれば。Enter イベントで他のコントロールにフォーカスを移す事でそのテキストボックスにはフォーカスが移動しないので入力ができない。 Private Sub TextBox1_Enter(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles TextBox1.Enter TextBox2.Focus() End Sub
できました!どーもありがとうございます!
> KeyPress でe.Handled = True と打っても、日本語だと文章が打ててしまうし、そりゃ、KeyPress イベントなのですから当たり前のことです。それを言ったら、コピー & ペーストも防げてしまいますから。> テキストボックスをクリックするとカーソル位置の「|←こんなの」が出てしまいます。> 編集不可能にして、|← を消す方法はありますか?カレットのことですかね?それならば、 キーによるフォーカスなら、元のフォーカス位置から再度自前で検索をかける。 マウスによる選択ならば、キャンセルする。という処理で十分可能です。> テキストボックスの色を変えたいので、.Enabled = False は使えません(TT)私も、その理由で、上記のようなカスタムコントロールを作成したことがあります。Windows の仕様なのですから、イヤがらなくてもいいのに... > 我が社のSE