いつもお世話になっています。
C# WindowsForms のrichTextBoxで、表示されているテキストを行頭から行末(を超えて)
までの1行分をマウスでドラッグ選択すると、改行コードまで選択されてしまい、その状態で
Deleteキーで削除すると、当然1行削除され、その行より以下のテキスト行が削除した行に詰められるため、
行削除による空白行として残したいのに残りません。
メモ帳や、他のテキストエディタ(Mery)で同じ操作をすると、改行コードはマウス選択できず、
削除後の空白行を残す事ができますが、アプリの仕様とのアドバイスを頂いています。
改行コードも含め行を消した場合でも、空白行を残すとするなら、再度改行コードを追加するような
コードを記述するという事で良いのでしょうか?
例えば、マウスセレクトした文字列の行末が改行コードで、削除された場合、改行コードを追加する
という事を自前でやる・・となるのでしょうか?
宜しくお願いします。
行末を越えて、マウス選択してた場合、行末の改行コードが含まれるのは仕様じゃないですか?
少なくとも、"他のテキストエディタ(Mery)"については、そのエディタの仕様。
メモ帳は、そうみたいですが、ワードパッドは、改行まで消えました。
それ以上は、アプリでコントロールすれば、良いと思います。
アドバイスありがとうございます。
仕様なのですね。確かにワードパットは消えます。richTextBoxと同じようです。
自前で行うのは大変そうです。
修正をしてみましたが、内容が的外れになっていないでしょうか?
ワードパットはクアドラプルクリックすると改行コードを含まず行選択しますね。ダブルクリックの要領で 4 回クリックしてみてください。
RichTextBoxのプロパティ<https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.richtextbox?view=netframework-4.8>にそんなオプションがあるか、ざっと見た限りでは分からなかったです。プログラム的には、質問の方法もありかと思います。ただ、自分の感覚としては、行末を越えて選択は、改行も含むのが一般的と思うのですが、、。
Zuishinさん、やり方が悪いのか、うまくいきませんでした。もっとも、単純に行末を越えない選択の方が楽な気がしますが、、。
残念ながら、
pepperleafさん Zuishinさん ありがとうございます。
クリックの件、4回はうまくできませんでしたが、数回のクリックで選択のされ方の変化を知ることができました。その事で、「1行選択の際、改行コードを超えても改行コードは選択されない仕様を再現する事」に拘らないようにしました。
いろんな選択のされ方の1つに「-」文字が入っていると、そこで切れてしまうため選択の瞬間と直後か同時に前方か後方にドラッグすると、無事1行選択なんてこともあったりしました。
ご指摘の通り「仕様」との事で解決したとさせていただきます。
クアドラプルクリックで改行コードを含まず行選択できると書きましたが、誤りでした。書いた文字によってはそのように見えるというだけでした。
回答1件
あなたの回答
tips
プレビュー