我正在尝试创建一个像 msn 这样的聊天应用程序。当我执行“textBox.Text = textBox.Text+text”时,它会更新文本框,并且不再选择我选择的文本。在 MSN 中,您可以选择文本并仍然接收不同颜色的消息等。他们是如何做到的?我认为它类似于推送消息,也许他们在另一个文本框下创建了一个新文本框?有什么线索吗?
我希望你们知道我在这里说的是什么。我只是希望我的文本表现得像 MSN 以前那样,而不是更新整个文本框,只是在当前消息下推送一条新消息等。
我正在尝试创建一个像 msn 这样的聊天应用程序。当我执行“textBox.Text = textBox.Text+text”时,它会更新文本框,并且不再选择我选择的文本。在 MSN 中,您可以选择文本并仍然接收不同颜色的消息等。他们是如何做到的?我认为它类似于推送消息,也许他们在另一个文本框下创建了一个新文本框?有什么线索吗?
我希望你们知道我在这里说的是什么。我只是希望我的文本表现得像 MSN 以前那样,而不是更新整个文本框,只是在当前消息下推送一条新消息等。
如果我理解您的问题,您只是希望在将消息附加到 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);
}