C# RichTextBox顶部追加新文本
我的C# RichTextBox顶部追加新文本,c#,visual-studio,logging,append,C#,Visual Studio,Logging,Append,我的C#应用程序中有一个RichtTextBox,向用户显示日志。问题是新插入的文本会在旧文本下方追加,但我想将其追加到旧文本上方 例如,当我附加文本“Newtext”时,它如下所示: RichtTextBox: |--------------------- |Oldtext | |Newtext | |--------------------- |--------------------- |Newtext | |Old
C#
应用程序中有一个RichtTextBox
,向用户显示日志。问题是新插入的文本会在旧文本下方追加
,但我想将其追加到旧文本上方
例如,当我附加文本“Newtext”时,它如下所示:
RichtTextBox
:
|---------------------
|Oldtext |
|Newtext |
|---------------------
|---------------------
|Newtext |
|Oldtext |
|---------------------
public void DisplayLog(string logtext)
{
if (logtext != "")
{
if (this.txtLog.InvokeRequired && !txtLog.IsDisposed)
{
Invoke(new MethodInvoker(delegate()
{
txtLog.AppendText(DateTime.UtcNow + ": " + logtext + "\n");
}));
}
else if (!txtLog.IsDisposed)
{
txtLog.AppendText(DateTime.UtcNow + ": " + logtext + "\n");
}
}
}
但它需要像这样:
RichTextBox
:
|---------------------
|Oldtext |
|Newtext |
|---------------------
|---------------------
|Newtext |
|Oldtext |
|---------------------
public void DisplayLog(string logtext)
{
if (logtext != "")
{
if (this.txtLog.InvokeRequired && !txtLog.IsDisposed)
{
Invoke(new MethodInvoker(delegate()
{
txtLog.AppendText(DateTime.UtcNow + ": " + logtext + "\n");
}));
}
else if (!txtLog.IsDisposed)
{
txtLog.AppendText(DateTime.UtcNow + ": " + logtext + "\n");
}
}
}
这是我用来填充我的RichTextBox
的代码:
|---------------------
|Oldtext |
|Newtext |
|---------------------
|---------------------
|Newtext |
|Oldtext |
|---------------------
public void DisplayLog(string logtext)
{
if (logtext != "")
{
if (this.txtLog.InvokeRequired && !txtLog.IsDisposed)
{
Invoke(new MethodInvoker(delegate()
{
txtLog.AppendText(DateTime.UtcNow + ": " + logtext + "\n");
}));
}
else if (!txtLog.IsDisposed)
{
txtLog.AppendText(DateTime.UtcNow + ": " + logtext + "\n");
}
}
}
谁能帮帮我吗
回答:
使用插入
txtLog.Text = txtLog.Text.Insert(0,DateTime.UtcNow + ": " + logtext + "\n");
我认为txtlog是RichTextBox,你应该在它前面加上前缀
要做到这一点,请在开始时使用
txtlog .SelectionStart = 0;
txtlog .SelectionLength = 0;
txtlog .SelectedText = (DateTime.UtcNow + ": " + logtext + "\n");
检查此帖子:[1]:该答案不起作用。嗯,使用您的代码后,文本将不再显示在我的RichTextBox中。更正它起作用,只是我自己使用此主题答案发现它: