在C#Windows窗体中的字符串中使特定文本变为粗体

时间:2014-07-11 12:22:56

标签: c# colors textbox formatting richtextbox

我想在文本框中将文本的一部分加粗,例如文本框包含。

"这是一个文本框"

所以它将是" 是一个文本框"

如何在C#Windows窗体中执行此操作?

3 个答案:

答案 0 :(得分:1)

您可以在FontStyle类的帮助下完成此操作。 只需在表单中添加一个按钮并将其命名为Bold,然后为其创建一个click事件。 您必须使用Rich文本框,不能使用文本框。 此代码会将所选文本转换为粗体。

private void btnBold_Click(object sender, EventArgs e)
    {
        FontStyle style = tbMessage.SelectionFont.Style;
        if (tbMessage.SelectionFont.Bold)
        {
            style = style & ~FontStyle.Bold;
            btnBold.Font = new Font(btnBold.Font, FontStyle.Regular);
        }
        else
        {
            style = style | FontStyle.Bold;
            btnBold.Font = new Font(btnBold.Font, FontStyle.Bold);
        }
        tbMessage.SelectionFont = new Font(tbMessage.SelectionFont, style);
        tbMessage.Focus();

    }

答案 1 :(得分:0)

您无法在标准TextBox控件中执行此操作,您需要使用具有适当格式的RichTextBox控件。

答案 2 :(得分:0)

要明确,你不能在TextBox中这样做。使用RichTextBox

RichTextBox中,首先选择所需文字,方法是设置SelectionStartSelectionLength属性,或让用户以交互方式选择文字。然后通过设置Selection...属性之一来应用格式:

richTextBox1.Text = "This is a text box";
richTextBox1.SelectionStart = 5;
richTextBox1.SelectionLength = 2;
richTextBox1.SelectionFont = new Font(richTextBox1.SelectionFont, FontStyle.Bold);