あなたが言うように、RichTextBox
あなたが求めることをするのに役立ちます。ただし、アイコンとツールバーの削除に関するあなたの発言は理解できません。逆に、書式設定を有効にするには、独自のボタンを作成する必要があります。
例として、選択範囲の太字スタイルを切り替える方法を示します
private void boldToolStripButton_Click(object sender, EventArgs e)
{
ToggleFontStyle(FontStyle.Bold);
boldToolStripButton.Checked = !boldToolStripButton.Checked;
}
private void ToggleFontStyle(FontStyle style)
{
int selStart = richTextBox.SelectionStart;
int selLength = richTextBox.SelectionLength;
int selEnd = selStart + selLength;
if (selLength == 0) {
return;
}
Font selFont = richTextBox.SelectionFont;
if (selFont == null) {
richTextBox.Select(selStart, 1);
selFont = richTextBox.SelectionFont;
if (selFont == null) {
return;
}
}
bool set = (selFont.Style & style) == FontStyle.Regular;
for (int from = selStart, len = 1; from < selEnd; from += len) {
richTextBox.Select(from, 1);
Font refFont = richTextBox.SelectionFont;
for (int i = from + 1; i < selEnd; i++, len++) {
richTextBox.Select(i, 1);
if (!refFont.Equals(richTextBox.SelectionFont))
break;
}
richTextBox.Select(from, len);
if (set) {
richTextBox.SelectionFont = new Font(refFont, refFont.Style | style);
} else {
richTextBox.SelectionFont = new Font(refFont, refFont.Style & ~style);
}
}
// Restore the original selection
richTextBox.Select(selStart, selLength);
}
ご覧のとおり、これは非常に複雑です。現在のテキスト選択には、異なる形式のテキスト部分が含まれる可能性があるためです。このコードは、フォント スタイルを部分的に変更し、部分が一意の形式になるようにします。
ユーザー フレンドリーなインターフェイスを提供するには、テキスト選択イベントを処理し、選択の書式設定に従ってスタイル ボタンを切り替える必要もあります。つまり、ユーザーが太字のテキストを選択した場合、bold-toggle-button は押された状態になります。