RichTextBox.AppendText не добавляет новую строку - PullRequest
0 голосов
/ 06 июля 2019
public void sendClient(string text)
{
    StringBuilder sb = new StringBuilder();
    sb.Append("[");
    sb.Append("CLIENT");
    sb.Append("] ");
    sb.Append(text);

    richTextBox1.Invoke((MethodInvoker)delegate { richTextBox1.AppendText(sb.ToString() + @"\par\r\n") ; });
}

Я также пытался использовать Environment.NewLine, но у меня ничего не получается. Для свойства Multiline установлено значение true.

Хорошо, у меня есть класс NamedPipeServer в конструкторе этого класса, который я передаю mainform, как при использовании (..., форма mainForm), а затем использую

string bruh = encoder.GetString(Rc, 0, ReadLength).ToString();
main.sendClient(bruh)

Но я думаю, что строка "Брю" отрицает перевод строки. потому что, когда я просто пытаюсь отправить через "Hy" в main.sendClient это работает работает отлично

Также пробовал = bruh = Encoding.ASCII.GetString (Rc); тоже не работал Я пробовал ASCII, Unicode, UTF8. не работал ни с Environment.NewLine, ни с \ r, ни с \ n.

private void Read()
    {
        //Client client = (Client)clientObj;
        //clientse.stream = new FileStream(clientse.handle, FileAccess.ReadWrite, BUFFER_SIZE, true);
        byte[] buffer = null;
        ASCIIEncoding encoder = new ASCIIEncoding();

        while (true)
        {

            int bytesRead = 0;

            try
            {
                buffer = new byte[BUFFER_SIZE];
                bytesRead = clientse.stream.Read(buffer, 0, BUFFER_SIZE);
            }
            catch
            {
                //read error has occurred
                break;
            }

            //client has disconnected
            if (bytesRead == 0)
                break;

            //fire message received event
            //if (this.MessageReceived != null)
            //    this.MessageReceived(clientse, encoder.GetString(buffer, 0, bytesRead));

            int ReadLength = 0;
            for (int i = 0; i < BUFFER_SIZE; i++)
            {
                if (buffer[i].ToString("x2") != "cc")
                {
                    ReadLength++;
                }
                else
                    break;
            }
            if (ReadLength > 0)
            {
                byte[] Rc = new byte[1440];
                Buffer.BlockCopy(buffer, 0, Rc, 0, ReadLength);

                //Console.WriteLine("C# App: Received " + ReadLength + " Bytes: " + );

                //main.sendClient(encoder.GetString(Rc, 0, ReadLength).ToString());


                string bruh = Encoding.Unicode.GetString(Rc);
                Regex.Replace(bruh, @"[^\x20-\x7F]", "");
                main.sendClient(bruh + "\r\n");
                buffer.Initialize();
            }

        }

        //clean up resources
        clientse.stream.Close();
        clientse.handle.Close();

    }

^ это целая функция на стороне c #

...