- PR -

リッチテキストコントロールの内容をC#から編集したい

1
投稿者投稿内容
ちょろ
会議室デビュー日: 2005/01/29
投稿数: 2
投稿日時: 2006-10-13 09:12
リッチテキストコントロールで表示した内容をC#から編集したいと考えていますが、単純にSubstringメソッドなどで編集してしまうと、それまで設定してあった書式がクリアされてしまいます。
書式を保持したままC#側からテキストに対して編集をかける方法は無いでしょうか?

具体的にはReadonlyプロパティをtrueにした状態で、ユーザーに編集させることなくコントロール内の特定文字列を他の文字列の書式を保持したまま削除することを考えています。
HIRO
大ベテラン
会議室デビュー日: 2002/06/21
投稿数: 109
投稿日時: 2006-10-13 10:30
参考になればよいのですが...

RichTextBox コントロールの自動的 なフォントの変更

_________________
--------------------------------------------
HIRO's.NET VB.NETとC#のTipsを掲載しています

[ メッセージ編集済み 編集者: HIRO 編集日時 2006-10-13 10:33 ]
ダッチ
大ベテラン
会議室デビュー日: 2005/10/31
投稿数: 113
投稿日時: 2006-10-13 12:38
削除するタイミングで
コード:
Me.RichTextBox1.ReadOnly = False
Me.RichTextBox1.Select(削除する開始位置, 削除する長さ)
Me.RichTextBox1.SelectedText = String.Empty
Me.RichTextBox1.ReadOnly = True


こんな方法しか思いつきませんでした。

他に、もっといい方法があるかもしれません。
ちょろ
会議室デビュー日: 2005/01/29
投稿数: 2
投稿日時: 2006-10-13 21:35
HIROさん、ダッチさん返答有り難うございます。
ダッチさんの方法は似たような形でSendkeysでDELを送る方法で試したんですが、あまりスマートじゃないんですよね。
APIは出来れば叩きたくないなと思う次第です。

とりあえずは表示上の問題なので装飾のポジションなどを削除時にArrayListとかに保存しておいて再適用させようかと考えていますが・・・
RTFフォーマットを直接弄る気にはならないですし、難しいですね。
1

スキルアップ/キャリアアップ(JOB@IT)