【问题标题】:C# RichTextBox Displaying Random FormatC# RichTextBox 显示随机格式
【发布时间】:2014-01-25 01:51:10
【问题描述】:

我有一个带有 2 个 RichTextBox 表单的 RS232 通信应用程序。一种形式用于记录“传出”消息,另一种形式用于从端口接收“传入”消息。我使用相同的语法来记录消息,但由于某种原因,我在“传入”窗口中获得了随机格式(从端口读取)。

有没有办法让“传入”框在新行上显示每个传入的响应字节[]?我使用的是超级终端,所以我发出的任何东西都应该立即通过同一个端口返回。

两个 RTB 窗口都使用以下日志方法

        private void Log(LogMsgType msgtype, string msgOut)
    {
        rtbOutgoing.Invoke(new EventHandler(delegate
        {
            rtbOutgoing.SelectedText = string.Empty;
            rtbOutgoing.SelectionFont = new Font(rtbOutgoing.SelectionFont, FontStyle.Bold);
            rtbOutgoing.SelectionColor = LogMsgTypeColor[(int)msgtype];
            rtbOutgoing.AppendText(msgOut);
            rtbOutgoing.ScrollToCaret();
        }));
    }

【问题讨论】:

  • 你能告诉我们调用 Log() 的代码吗?
  • 'LogOutgoing(LogMsgType.Outgoing, "短地址" + i.ToString() + "\n");'
  • 我在输出中的任何地方都没有看到字符串“Short Address”。你确定这是正确的代码吗?

标签: serial-port richtextbox


【解决方案1】:

根据您的评论,您应该可以尝试这样的事情。我们将更改 i.ToString() 输出的内容,以便将其转换为换行符分隔的数据而不是空格分隔:

试试这个:

LogOutgoing(LogMsgType.Outgoing, "Short Address" + i.ToString().Replace(" ", "\n") + "\n");

这会在字符串发送到 log() 函数之前将所有空格更改为“\n”。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-27
    • 2012-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多