如何在richTextBox上创建字符串Bold的特定部分?

时间:2013-02-17 14:00:54

标签: c# .net richtextbox

我有一个基于Form和2 richTextBoxes的聊天应用程序!

richTextBox1用于显示所有对话
richTextBox_TextToSend用于键入要发送的邮件

当用户键入消息并按Enter键时,输入的文本将出现在richTextBox1

private void button1_Click(object sender, EventArgs e)
    {
        // insert message to database
        if(richTextBox_TextToSend.TextLength>0) {

        string txt = richTextBox_TextToSend.Text;

        // send the typed message
        sendMessage(from,to,task_id,txt);

        // show the typed text in the richTextBox1
        richTextBox1.Text += from+": "+richTextBox_TextToSend.Text+"\n";
        richTextBox_TextToSend.Clear();



        }
    }

string类型的变量from包含发送消息的人员名称(使用该应用程序的用户)

如何仅以正常字体样式的粗体和其他文本显示名称,因此在输入消息后,我看到 Chakib Yousfi :你好.... br />
而不是

Chakib Yousfi:你好......

任何帮助都将受到高度赞赏。

enter image description here

2 个答案:

答案 0 :(得分:2)

使用此代码:

private void button1_Click(object sender, EventArgs e)
{
    // insert message to database
    if(richTextBox_TextToSend.TextLength>0) {

    string txt = richTextBox_TextToSend.Text;
    int start = richTextBox1.TextLength;
    string newMessage = from + ": " + richTextBox_TextToSend.Text + Environment.NewLine;

    // send the typed message
    sendMessage(from,to,task_id,txt);

    // show the typed text in the richTextBox1
    richTextBox1.AppendText(newMessage);
    richTextBox_TextToSend.Clear();

    richTextBox1.Select(start, from.Length);
    richTextBox1.SelectionFont = New Font(richTextBox1.Font, FontStyle.Bold);

    }
}

答案 1 :(得分:1)

首先,您应该选择要加粗的文字:

richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = 13;

然后您可以为所选文本定义样式:

richTextBox1.SelectionFont = new Font(richTextBox1.Font, FontStyle.Bold);