使用文本框编写日志的C#实现

10

我对C#很新(最近遇到了RS-232问题),正在尝试编写一个小应用程序,该程序会在幕后执行各种任务,我想创建消息日志以使用户了解应用程序处于哪个阶段。

日志将只包含简单的单行消息。

我目前正在使用一个禁用的文本框,以防止用户更改它。 我可以使用\r\n字符做多行文字,但是当我要写第二组消息时,它们会被写在文本框的开头,覆盖掉第一组消息。

我能改为追加而不是覆盖吗?此外,当文本超过框的显示范围时,文本框是否会自动添加滚动条?

4个回答

7
textBox1.Text +=  "new Log Message" + Environment.NewLine;

使文本框不被禁用,但只读,并且滚动条将出现。

一切都很顺利,我不得不启用文本框,否则滚动条就无法移动,但只读模式也解决了这个问题!谢谢大家!!太棒了。 - George
这里有一个问题。当第一个日志条目添加时,开头会有一个空的新行。 - erelender
不,第一行被正常使用了! - George

6
更好的选择是使用:
TextBox.AppendText(string)

例如:

myTextBox.AppendText(newLogEntry + Environment.NewLine);

为了避免滚动条的闪烁,需要让多行文本框自动滚动到底部。

MSDN 关于 TextBox.AppendText(string)


4
要将它添加到顶部:
textBox.Text = newText + Environment.NewLine + textBox.Text;

添加它的方法是:
textBox.Text += Environment.NewLine + newText;

是的,滚动条会自动添加。


2
您可以使用以下代码将文本追加到现有内容中:
myTextBox.Text += myLogText + Environment.NewLine;

或者,您可以使用一个列表框。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接