2012-01-08 17 views
1

Windowsフォームアプリケーションでは、プレーンテキスト(現在は書式設定は不要)を編集したいが、テキストの一部を編集不可能にしておきたい。例えば。ユーザーが追加のテキストを追加または追加するか、「ABC」を完全に削除することができる「ABC」から始めるが、「ABC」は編集不可能なアトムとして常に保持する。Windowsフォームの(リッチ)テキストボックスの編集不可能な部分

私の最初の考えは、RichTextBoxを使用してRTFフィールド({\field...})を追加することでしたが、RichTextBoxはフィールドをサポートしていないようです。

もう1つのアプローチは、編集不可能なテキストを画像として追加することです。しかし、イメージのサイズ変更を確実に防止する方法は見つけられませんでした。 (前に質問された質問:Remove the ability to resize an image pasted into a richtextbox and add an event to that image. C#

フィールドや画像を使用してこれを動作させる方法はありますか?または、望ましい動作を設計するための他の方法はありますか?

答えて

0

私の問題解決方法:テキストをIRichEditOleを使用してイメージとして挿入します。このようにして、テキストは、私が欲しかったものである単一の文字のように扱われます。 http://www.codeproject.com/KB/edit/MyExtRichTextBox.aspxはIRichEditOleの使用方法を説明しています。

0

残念ながら、ここでWinFormsで素晴らしい答えを見つけるつもりはないと思います。あなたが本当に求めているのは、完全な吹き替えエディターと小さな編集ボックスのほうがはるかに近く、RichTextBoxが提供されています(プラス表示されます)。

ディスプレイが非常にシンプルなのであれば、RichTextBoxの横にラベルを貼り付けて境界線を取り除いて、その背景を一致させるように変更することができます。私は100%あなたがディスプレイを少なく見せることができると確信していない(WPFでも可能です)。

ここでは、追加と削除でもう少し複雑な動作を説明していますが、これを機能させるには、新しいカスタム編集コントロールを作成する必要があるかもしれないと思います。これはWinFormsのかなり大きなステップですが、おそらくあなたがやろうとしているものではありません。

3

SelectionProtected propertyを使用してください。

+0

アドバイスをいただき、ありがとうございました。このプロパティはわかりませんでした。いくつかの問題が発生しました(SelectionProtectedで始まるテキストボックスの冒頭にテキストを追加することはできません。選択範囲全体を削除することはできません)。 –

0

ないあなたは多分、サードパーティ製のコントロールを使用して見ているが、WinFormsのためのDevExpress社のリッチテキストエディタのコントロールは、私はあなたが探しているかもしれないと思うものを持っているかどうかわから...

ドキュメントの保護

当社の文書保護モデルはRTF 1.9.1仕様(読み取り専用パスワード保護および保護例外セクション)に基づいており、Microsoft®Word®のドキュメント保護機能と互換性があります。

ドキュメント保護を有効または無効にするには、ProtectDocumentCommand/UnprotectDocumentCommandコマンドを使用します。パスワードの入力が求められます。

ドキュメント保護が有効になっている場合、権限を持つ範囲を除き、ドキュメント内のコンテンツは編集できません。それらは、RangePermission.UserNameまたはRangePermission.Groupプロパティで指定されたIDを持つユーザーによって変更できます。特定の範囲を編集可能にするには、AuthenticationOptions.UserNameはRangePermission.UserNameの値と等しいか、またはAuthenticationOptions.GroupはRangePermission.Group値と等しくなければなりません。特殊なケースはグループ "Everyone"です。このグループでマークされた範囲は、認証オプションで指定されたユーザー名またはグループに関係なく編集できます。

RangePermissionは、どのユーザーがドキュメントの特定の領域を編集できるかを制御するための特別なタイプのブックマークです。

+0

私は、WinFormsリッチエディタもトリックを行うべきドキュメントフィールドをサポートしていることを知りました。私の場合はそれを使ってナットを割れているようですが、ナツメヤシが見つからなければ戻ってくるかもしれません。 :) –

関連する問題