我在做一个聊天客户端,目前我有一个按钮,点击时会显示数据到多行文本框。 这是将数据添加到多行文本框的唯一途径? 我觉得这是非常低效的,因为如果谈话变得非常长的字符串会得到很长的为好。
private void button1_Click(object sender, EventArgs e)
{
string sent = chatBox.Text;
displayBox.Text += sent + "\r\n";
}
如果您使用的WinForms:
使用AppendText(myTxt)
方法对TextBox
代替(.NET 3.5+):
private void button1_Click(object sender, EventArgs e)
{
string sent = chatBox.Text;
displayBox.AppendText(sent);
displayBox.AppendText(Environment.NewLine);
}
在本身的文本通常具有低内存占用(你可以说f.ex. 10KB,这是“无中生有”中很多)。 文本框不会呈现的所有文本是在缓冲区中,仅可见部分,所以你不必担心滞后太多。 较慢的操作插入文本。 追加文字是比较快的。
如果你需要的内容更复杂的操作,您可以使用StringBuilder
与文本框相结合。 这会给你的文字处理非常有效的方式。
因为你没有指定你所使用的前端(GUI技术),这将是很难作出具体的建议。 在WPF中你可以创建一个列表框和聊天的每一个新行添加一个新的ListBoxItem的到集合的末尾。 此链接提供了一些建议,你会如何实现一个WinForms环境相同的结果。
我觉得这个方法可以节省大量的键入,并防止错别字很多。
串NL = “\ r \ n” 个;
txtOutput.Text = “第一行” + NL + “第二行” + NL + “第三线”;
C# - serialData是ReceivedEventHandler
在TextBox
。
SerialPort sData = sender as SerialPort;
string recvData = sData.ReadLine();
serialData.Invoke(new Action(() => serialData.Text = String.Concat(recvData)));
现在,Visual Studio的下降我的台词。 文本框,当然,对所有正确的选项。
串行:
Serial.print(rnd);
Serial.( '\n' ); //carriage return