为什么我的方法不会附加这个richTextBox

我目前正在尝试制作即时消息传递应用程序。


有一个客户端和一个服务器。服务器工作正常,但是由于某种原因,当我调用某个函数来更新UI时,TextBox不会将文本添加到其中。


下面是我的代码示例-在我的应用程序中,以不同的形式调用Update UI:


public ChatWindow()

    {

        InitializeComponent();

        Thread timerThread = new Thread(Main.ReceiveLoop);

        timerThread.Start();

    }


    private void txtChatLog_TextChanged(object sender, EventArgs e)

    {


    }


    private void btnSendMessage_Click(object sender, EventArgs e)

    {

        string clientReply = txtReply.Text;

        string Message = "ClientMsg§" + clientReply;

        var time = DateTime.Now;

        txtChatLog.AppendText($"{time} client: {clientReply}");

        txtChatLog.AppendText(Environment.NewLine);

        Main main = new Main();

        main.ChatResponse(Message);

        txtReply.Text = "";


    }


    public void UpdateChatLog(string message)

    {

        var time = DateTime.Now;

        string newMessage = message.Split('$')[1];

        string messageToDisplay = $"{time} Server: {newMessage}";

        MessageBox.Show(messageToDisplay);

        txtChatLog.AppendText(messageToDisplay);

        txtChatLog.AppendText(Environment.NewLine);

    }


    private void ChatWindow_Load(object sender, EventArgs e)

    {


    }

正如我用messagebox.show();检查的那样,客户端挑衅地从服务器接收消息。


同样,当按下发送消息按钮时,富文本框也会更新。但是由于某种原因,它不会通过UpdateChatLog方法进行更新。


任何帮助将非常感激。


catspeake
浏览 158回答 2
2回答

侃侃无极

尝试刷新文本框:txtChatLog.Refresh()
打开App,查看更多内容
随时随地看视频慕课网APP