添加文本(推送)到文本框或richtextbox?

时间:2013-09-23 19:46:22

标签: c# textbox chat richtextbox msn

我正在尝试创建像msn这样的聊天应用程序。当我执行“textBox.Text = textBox.Text + text”时,它会更新文本框,并且不再选择我选择的文本。在MSN中,您可以选择文本并仍然接收不同颜色的消息等。他们是如何做到的?我认为它像推送消息,也许他们在另一个文本框下创建一个新的文本框?有线索吗?

我希望你们知道我在这里谈论的是什么。我只是希望我的文本行为像MSN一样,不更新整个文本框,只需在当前消息下推送新消息等。

1 个答案:

答案 0 :(得分:0)

如果我理解您的问题,您只是希望在将消息附加到RichTextBox时保持文本被选中?

int selectionStart = textBox.SelectionStart;
int selectionLength = textBox.SelectionLength;
int carat = textBox.TextLength;

textBox.Text += Environment.NewLine;
textBox.Text += newText;

//optional styling code for newly appended text
textBox.Select(carat, newText.Length);
textBox.SelectionColor = //value;
//etc.

//reapply original selection
if(selectionStart >= 0 && selectionLength > 0)
{
    textBox.Select(selectionStart, selectionLength);
}