リッチテキストボックスに、カーソルが点滅している位置に文字列を追加したいとします。私はまた、入力したテキストの色を変更したい。たとえば、色が黒である事前に入力されたテキストがある場合、新しい文字列を入力した後、この文字列は青色になります。そして、それは私が文字列を入力するすべての時間のためにする必要があります。そして私が入力した弦は、青いままでなければなりません。ありがとうリッチテキストボックスのカーソル位置に文字列を追加する方法C#?
答えて
現在のカーソル位置もSelectionStart
として知られています:ここで説明したよう
は、次にそれは、ちょうどあなたが別の書式を適用することができ文とそれにテキストを追加するのは簡単なことです。
richtTextBox1.SelectionLength=0;
richtTextBox1.SelectionColor = Color.Blue;
は、今あなたが入力し、すべてが青になります:単にあなたがしたいすべてのSelectionXXXプロパティを
SelectionStart=0
を設定し、設定します。
もはやそれほど必要ではありません。 TextChanged
イベントを購読する必要はありません。
カーソル位置を別のスポットに移動すると、スポットの色は独自の色になり、新しいテキストを入力するとその色が表示されます。
あなたが他のスポットに新色(青)を適用したい場合は、おそらくこのようSelectionChanged
イベントをコーディングする必要があります:あなたは既にある部分を色付けしたい場合は、
private void richTextBox1_SelectionChanged(object sender, EventArgs e)
{
// you should check if there is no text selected
// or else any selection will be colored immediately:
if (richTextBox1.1.SelectionLength == 0)
richTextBox1.1.SelectionColor = yourNewColor;
}
そして、いつものようにその部分を選択して再度色を設定する必要がある新しい色があります。このためにカラーパレットを使うのがベストです!いくつかの色のLabels
を使用して、あなたが書くかもしれない:
private void colorLabel_Click(object sender, EventArgs e)
{
Color yourNewColor= ((sender) as Label).BackColor;
richTextBox1.1.SelectionColor = yourNewColor;
}
をあなたがしたい場合は、Panel's BackgroundImage
で豊かなパレットの画像を使用し、そのMouseClick
イベントをコーディングすることができます:私が使用する方法
private void panel1_MouseClick(object sender, MouseEventArgs e)
{
Color c = ((Bitmap)panel1.BackgroundImage).GetPixel(e.X, e.Y);
if (e.Button.HasFlag(MouseButtons.Left))
{
richTextBox1.SelectionColor = c;
}
else // pick new BackColor:
{
richTextBox1.SelectionBackColor = c;
}
}
テキストボックスからテキストが変更されているイベントに登録する必要があるので、カーソルまで入力されたテキストが表示されます。
http://www.wpf-tutorial.com/basic-controls/the-textblock-control-inline-formatting/
おかげで、それはリッチテキストボックスですか? –
実際に私はメモ帳などのようにテキストエディタを作成したい。 –
ああ、それは私の友人とはまったく異なる質問です。私はTextBlockでこれを行うことができると思いますが、それが適切かどうか、あるいは最適な方法が他にあるかどうかは分かりません。ごめんなさい –
- 1. Cのリッチテキストボックスにカーソルの位置を表示する方法
- 2. 文字列ベースのカーソル位置付け
- 3. 指定した位置に文字列を追加する方法は?
- 4. 崇高な文章:列の位置に文字を追加
- 5. PHP:文字列内の位置に文字列を追加する最も簡単な方法は?
- 6. jQuery UI、ドラッグアンドドロップ、カーソル位置に追加
- 7. JavaScriptを使用してカーソル位置のTextAreaにテキストを追加する方法
- 8. リッチテキストボックスにブロックを追加する方法
- 9. RichTextBoxの文字列をカーソル位置に挿入
- 10. Visual Cでカーソル位置をテキスト位置に変換する方法は?
- 11. 文字列を文字列リストに追加する方法
- 12. 文字列を文字列に追加する方法
- 13. 文字列に部分文字列を追加する方法
- 14. リッチテキストボックス追加クエリC#
- 15. C#リソース文字列にプレースメント変数を追加する方法
- 16. 制御文字をC#の文字列に追加する方法は?
- 17. PHP - 特定の文字位置の既存の文字列に文字列を追加します。
- 18. 簡単な方法で配列に文字列を追加する方法 - C++
- 19. カーソルの位置をC#
- 20. 文字列をconst文字列に&C++で追加する
- 21. C++文字列の追加
- 22. C#でカーソルの位置を設定する方法XNA
- 23. リッチテキストボックスに文字列をロード
- 24. Java:文字列の特定の位置にcharを追加する(パフォーマンス)
- 25. テキストファイル内の文字の位置を特定する方法(C++)
- 26. 文字配列に文字を追加する方法
- 27. 文字列に制御文字を追加する方法
- 28. C++で文字列を検索、置換、追加する
- 29. C#文字のx個の文字列を文字列に追加する
- 30. .getSelectedItem()の文字列から位置を取得する方法
私はこのコードを追加しました。テキストの色は変更されません。 文字列insertText =テキスト。 int selectionIndex = richTextBox1.SelectionStart; richTextBox1.SelectionStart = selectionIndex; richTextBox1.Text = richTextBox1.Text.Insert(selectionIndex、insertText); richTextBox1.SelectionLength = 0; richTextBox1.SelectionColor = Color.Blue; –
'richTextBox1.Text ='これは間違いです。どのフォーマットでもRTBのTextプロパティを変更しないでください。そうしないと、フォーマットが混乱します。コードでテキストを挿入するには、SelectionStartを目的の位置に設定し、SelectionLength = 0にし、SelectedText = yourNewTextを書き込みます。 - あなたは何が起こっているのかを明確にする必要があります:ユーザーは新しいテキストを入力します。ユーザーの色は既存のテキストです。ORコードは新しいテキストを追加/挿入します。 SelectionColor = newColorを使用する必要がありますが、プレパレーションは異なります。 – TaW
色は変わりません。私が使用したコードは: string insertText = Text; int selectionIndex = richTextBox1.SelectionStart; richTextBox1.SelectionStart = selectionIndex; richTextBox1.SelectedText = insertText; richTextBox1.SelectionColor = Color.Blue; –