使用Debug.Writeline与RichTextBox.AppendText获得不同的结果

时间:2012-07-25 19:13:14

标签: c# vb.net logging console richtextbox

我想知道是否有人可以解释为什么当我使用以下代码时,我会得到不同的结果。为了进一步解释,我使用的是在C#中创建的dll,它是一个rcon框架。 richtextbox显示3行,然后不再显示,而我的调试控制台继续从我的rcon连接中获取数据。

我正在使用:

Private Shared Sub HandleMessage(args As BattlEyeMessageEventArgs)
    Debug.WriteLine(args.Message)
    Form1.RichTextBox3.AppendText(args.Message & vbNewLine)
    Form1.RichTextBox3.SelectionStart = Form1.RichTextBox3.TextLength
    If args.Message = "Connected!" Then
        Form1.Button3.Enabled = True
    End If
End Sub

如果有帮助,这里是EventHandler的C#代码:

using System;

namespace BattleNET
{
    public delegate void BattlEyeMessageEventHandler(BattlEyeMessageEventArgs args);

    public class BattlEyeMessageEventArgs : EventArgs
{
    public BattlEyeMessageEventArgs(string message)
    {
        Message = message;
    }

    public string Message { get; private set; }
    }
}

1 个答案:

答案 0 :(得分:0)

private delegate void UpdateRichTextBox3Delegate(RichTextBox3 textBox, string text);
private void UpdateRichTextBox3(RichTextBox3 textBox, string text){
    if(textBox.InvokeRequired){
        textBox.Invoke(new UpdateRichTextBox3Delegate(UpdateRichTextBox3),new object[]{textBox, text});
        return;
    }
    textBox.AppendText(String.format("{0}{1}", text,Environment.NewLine));
}

检查在更新之前是否需要先调用RichTextBox3。

致电UpdateRichTextBox3(Form1.RichTextBox3, "some text to append");