Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1

    [c#] accodamento stringhe rtf

    Salve a tutti.

    Non riesco a visualizzare queste stringhe rtf una volta accodate in un campo RichTextBox:

    tramite queste due semplici istruzioni visualizzo una stringa formattata in rtf
    tmpRTF+=message;
    txtWindowsMsg.Rtf=tmpRTF;

    la prima volta che assegno un valore a tmpRTF, come può essere il seguente:
    codice:
    "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1040{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n{\\colortbl ;\\red222\\green184\\blue135;}\r\n\\viewkind4\\uc1\\pard\\cf1\\f0\\fs17 13.29 \\b 30\\b0 : (scrivi qui il messaggio da inviare)\\par\r\n}\r\n\0"
    tutto funziona per il meglio, ma se ci accodo una nuova stringa, per es. questa:
    codice:
    "{\\rtf1\\ansi\\deff0{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n{\\colortbl ;\\red222\\green184\\blue135;}\r\n\\viewkind4\\uc1\\pard\\cf1\\lang1040\\f0\\fs17 13.29 \\b 30\\b0 : pippo\\par\r\n}\r\n\0"
    questa non viene stampata anche se è stata accodata nella variabile


    Sapete dirmi come mai?

    Sono sicuro che la formattazione delle due stringhe che ho riportato sia corretta, perché è il valore della proprietà .Rtf del testo del campo RichTextBox preso in esame.

  2. #2
    ho appena provato ad utilizzare anche uno Stringbuilder,
    codice:
    private StringBuilder sb = new StringBuilder();
    private void DisplayReceivedMessage()  		
    {  			
      sb.Append(message + System.Environment.NewLine);
      tmpRTF=sb.ToString();  
      txtWindowsMsg.Rtf=tmpRTF;
    }
    ma il risultato è che le stringhe successive alla prima non vengono stampate anche se presenti nell'accodamento...

  3. #3
    ho aggiunto questa riga ti codice:
    txtWindowsMsg.Rtf="";
    codice:
    private StringBuilder sb = new StringBuilder();  
    private void DisplayReceivedMessage()
    {
       sb.Append(message + System.Environment.NewLine);  
       tmpRTF=sb.ToString();     
       txtWindowsMsg.Rtf=""; 
       txtWindowsMsg.Rtf=tmpRTF;  
    }
    ma sebbene nella var tmpRTF esiste anche la seconda stringa, essa non viene visualizzata, venendo stampata così solo la prima

  4. #4
    Il problema non è del controllo RTF, ma della roba che ci metti dentro. Le tue due stringhe sono files fatti e finiti, per cui, anche se accodi al primo il secondo, il parser non andrà oltre la fine del primo, perché lì c'è già il terminatore di fine file.
    Amaro C++, il gusto pieno dell'undefined behavior.

  5. #5
    sospettavo una cosa del genere, e stavo giusto provando ora ad eliminare questi i caratteri.

    mi sto spulciando le specifiche della ver1.6 (http://msdn.microsoft.com/library/de...ml/rtfspec.asp) ma non riesco a trovare l'informazione che cerco... sapresti indicarmi quali caratteri devo eliminare?

    a rigor di logica penso siano "\0", visto che "\r\n" dovrebbero indicare la nuova riga.

    cmq il testo da visualizzare lo prendo da un altro RichTextBox e prima di stamparlo sull'altro applico il metodo remove al testo rtf
    codice:
    txtMsgToSend.Rtf.Remove(txtMsgToSend.Rtf.Length-2,2);
    ma sembra non eliminarmi i caratteri

  6. #6
    Non è così semplice: devi eliminare anche le intestazioni del secondo file, o meglio, effettuarne il merging con quelle del primo... un'operazione piuttosto complessa.
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    adesso capisco...

    conosci per caso un tutorial o dove posso trovare una guida per fare ciò?

    ps. grazie per le risposte precedenti

  8. #8
    Originariamente inviato da Gnr
    conosci per caso un tutorial o dove posso trovare una guida per fare ciò?
    No, mi spiace.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    non importa, ti ringrazio ancora; sei stato molto gentile.

    ciao

  10. #10
    Non c'è di che.
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.