[英]Adding new line of data to TextBox
我正在做一個聊天客戶端,目前我有一個按鈕,單擊時將數據顯示到多行文本框。 這是向多行文本框添加數據的唯一方法嗎? 我覺得這是非常低效的,因為如果對話變得很長,字符串也會變得很長。
private void button1_Click(object sender, EventArgs e)
{
string sent = chatBox.Text;
displayBox.Text += sent + "\r\n";
}
如果您使用 WinForms:
改為在TextBox
上使用AppendText(myTxt)
方法(.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 內說很多,這就是“無”)。 TextBox 不會渲染緩沖區中的所有文本,只會渲染可見部分,因此您無需過多擔心延遲。 較慢的操作是插入文本。 附加文本相對較快。
如果您需要對內容進行更復雜的處理,可以將StringBuilder
與文本框結合使用。 這將為您提供一種非常有效的文本處理方式。
以下是方法
從代碼(你提到的方式) - >
displayBox.Text += sent + "\r\n";
或者
displayBox.Text += sent + Environment.NewLine;
從用戶界面
一)WPF
Set TextWrapping="Wrap" and AcceptsReturn="True"
按 Enter 鍵進入文本框,將創建新行
b) Winform 文本框
Set TextBox.MultiLine and TextBox.AcceptsReturn to true
我發現這種方法節省了大量的打字,並防止了很多錯別字。
字符串 nl = "\r\n";
txtOutput.Text = "第一行" + nl + "第二行" + nl + "第三行";
因為您沒有指定您使用的前端(GUI 技術),所以很難做出具體的推薦。 在 WPF 中,您可以創建一個列表框,並為每一行新的聊天添加一個新的列表框項到集合的末尾。 此鏈接提供了一些關於如何在 winforms 環境中實現相同結果的建議。
C# - serialData 是TextBox
中的ReceivedEventHandler
。
SerialPort sData = sender as SerialPort;
string recvData = sData.ReadLine();
serialData.Invoke(new Action(() => serialData.Text = String.Concat(recvData)));
現在 Visual Studio 放棄了我的台詞。 當然,TextBox 有所有正確的選項。
序列號:
Serial.print(rnd);
Serial.( '\n' ); //carriage return
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.