2014-01-24 84 views
0

我有一個帶有2個RichTextBox窗體的RS232通信應用程序。一種形式是記錄「傳出」消息,另一種形式是接收來自端口的「傳入」消息。我使用相同的語法記錄消息,但出於某種原因,我在「Incoming」窗口中獲取了隨機格式(從端口讀取)。C#RichTextBox顯示隨機格式

有沒有辦法獲得「傳入」框在新行顯示每個傳入響應的byte []?我使用的是超級終端,因此我發出的任何內容都應該立即通過同一個端口返回。

兩個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(); 
     })); 
    } 

Screenshot of Output Windows

+0

你能告訴我們調用Log()的代碼嗎? –

+0

'LogOutgoing(LogMsgType.Outgoing,「Short Address」+ i.ToString()+「\ n」);' – Nevets

+0

我在輸出中的任何地方都看不到字符串「Short Address」。你確定這是正確的代碼嗎? –

回答

0

,你應該可以嘗試這樣的事情。我們要改變什麼i.ToString()的輸出,這樣它會轉換爲換行符分隔數據,而不是空格分隔:

試試這個:

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

這會改變所有的空格成「 \ n「在將字符串發送到log()函數之前。