14

テキストを太字にしたり、色を変更したりできるテキスト エディターを作成したいと考えています。

このコードはほぼ機能することがわかりました:

public static void BoldSelectedText(RichTextBox control)
{
     control.SelectionFont = new Font(control.Font.FontFamily, control.Font.Size,         FontStyle.Bold);
}

しかしRichTextBox、テキストにさらに文字を入力すると、まだ太字になります。

テキストを選択して「太字にする」ボタンを押さない限り、選択したテキストのみが太字になり、次の文字が太字にならないようにするにはどうすればよいですか?

4

1 に答える 1

22

選択後のフォントを元のフォントに設定する必要があります。

必要に応じて、SelectionStartandを保存しSelectionLength、メソッドを呼び出しSelectてテキストを再度選択することができます。

// Remember selection
int selstart = control.SelectionStart;
int sellength = control.SelectionLength;

// Set font of selected text
// You can use FontStyle.Bold | FontStyle.Italic to apply more than one style
control.SelectionFont = new Font(control.Font, FontStyle.Bold);

// Set cursor after selected text
control.SelectionStart = control.SelectionStart + control.SelectionLength;
control.SelectionLength = 0;
// Set font immediately after selection
control.SelectionFont = control.Font;

// Reselect previous text
control.Select(selstart, sellength);

このようにして、テキストは選択されたままになり、その後のフォントは正しいままです。

于 2011-10-28T00:51:39.193 に答える