如何在 C# 中将富文本框中的某些文本设置为粗体

发布于 2024-12-12 11:30:23 字数 362 浏览 2 评论 0原文

我想创建一个文本编辑器,可以使文本加粗,更改其颜色等。

我发现这段代码大致有效:

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

但是当我在 RichTextBox 中输入更多字母时,文本仍然是粗体。

除非我选择文本并点击“加粗”按钮,否则如何才能使只有选定的文本变为粗体而接下来的字符不是粗体?

I want to create a text editor where I can make text bold, change its color, etc.

I found this code to approximately work:

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

But when I type in more letters in the RichTextBox the text is still bold.

How can I make it so that only the selected text is bold and the next characters aren't unless I select the text and hit the "Make Bold" button?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小苏打饼 2024-12-19 11:30:23

选择后应将字体设置为原始字体。

如果您愿意,可以保存 SelectionStartSelectionLength 并调用 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);

这样文本就保持选中状态,之后的字体仍然是正确的。

You should set the font after the selection to the original font.

If you want you can save the SelectionStart and SelectionLength and call the Select method to select the text again.

// 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);

this way the text stays selected, and the font afterwards is still correct.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文