0

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

我希望你们知道我在这里说的是什么。我只是希望我的文本表现得像 MSN 以前那样,而不是更新整个文本框,只是在当前消息下推送一条新消息等。

4

1 回答 1

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);
}
于 2013-09-23T20:12:45.597 回答