2012-02-07 6 views
3

.NET WindowsフォームアプリケーションでRichTextBoxコントロールを使用しています。私は、ユーザーがテキストボックス内でTabキーを押すことを許可します。たびに、ユーザーがTABを押し、それは.textセクションのプロパティのように認識されていない文字が現れる.NET RichTextBoxタブ文字

"This[]is[a]tab[]test[]" 

:私はテキストボックスに.TEXT値を保存するときしかし、それはこのように表示されます。

ここでは何が起こっていますか? AcceptTab=Trueと我々はそれが"Hi[TAB Key]Mint"

されるべきだと思うにもかかわらず

"Hi mint "でRichTextBox1.Text結果でRichTextBox1.Rtf結果:

例のスクリーンショット:中間ウィンドウで
enter image description here

+0

「認識できない文字」とはどういう意味ですか? TABのASCII値は8です。char(8)をそこに挿入している可能性があります。 –

+0

@RoyDictus .Textにはエスケープされた値が表示されます。 _ \ t_ –

+0

基本的に、これをRichTextBoxに入力した場合:「こんにちは[私の名前はJohn Doeです]」 RichTextBoxの.Textプロパティをチェックすると、これは値「Hi [] My name is John Doe」として表示されます。それを押すとTab文字が認識されないようです。代わりに正方形が表示されます。私はすぐにスクリーンショットを添付します。 – mint

答えて

0

、それが働いた:

Dim tabString = Convert.ToChar(" ") //This is the [] string 
RichTextBox.Text = RichTextBox.Text.Replace(tabString, "  ") 

ベストソリューションではないにもかかわらず、RichTextBoxがTabキーで自動的にピックアップされない理由はまだ分かりませんが、今のところ機能します。

2

"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Microsoft Sans Serif;}} \viewkind4\uc1\pard\f0\fs17 Hi\tab mint\tab\par }" 
ここ

は、私はあなたが探して信じているトリックです:私が押されて「TAB」文字のすべてのインスタンスを検索し、「\ tの」でそれを置き換えることになった

RichTextBox1.SaveFile("C:\abc.txt", RichTextBoxStreamType.UnicodePlainText) 
+0

ありがとう、私はこれを試してみましょう。これは本当に理想的ではありませんが、ユーザーは複数回保存されますので、保存するたびにテキストファイルを作成する必要はありません。しかし、それは試してみる価値がある – mint

関連する問題