none
Identificação de quebra de linha em richtextbox RRS feed

  • Pergunta

  • Pessoal!

    Estou desenvolvendo um form que alimenta um documento no word usando o find, replace e tenho um componente richtextbox que é um texto mais detalhado.

    Nesse richtextbox, quando eu escrevo um texto que tenha quebra de linha, ao enviar o meu texto para o word, na quebra de linha aparece um sinal de interrogação dentro de um quadrado e consequentemente a linha não é quebrada.

    Alguém sabe me dizer como faço para enviar para o word esse campo com as quebras de linha?

    Obrigado.

    domingo, 25 de novembro de 2012 14:29

Todas as Respostas

  • Geralmente quebra de linha no Windows são dois caracteres.

    \r\n

    ou em vb

    ControlChars.CRLF

    O richtextbox reconhece também só o \n, talvez seja esse o problema.

    • Sugerido como Resposta EduardoPiresMVP terça-feira, 27 de novembro de 2012 12:12
    segunda-feira, 26 de novembro de 2012 17:12
  • nunca testei mas outra coisa que pode funcionar é isso > Environment.NewLine

    pelo menos pra exception funciona :P

    segunda-feira, 26 de novembro de 2012 18:51
  • Bom dia! Danimar!

    Mesmo usando os caracteres \r\n ao gerar o documento ele não faz a quebra de linha.

    Segue abaixo a imagem do preenchimento no windows Form e no word.

    Se repararem podem notar que onde deveria ter a quebra de linha ele esta incluindo caraceter especial e não faz a quebra de linha.

    Abaixo segue o script que estou usando:

                #region EDITA O ARQUIVO DO WORD
                String Caminho = cCaminhoOS.Text.ToString();            
    
                object missing = System.Reflection.Missing.Value;
                Word.Application oApp = new Word.Application();
                object template = Caminho;
    
                Word.Document oDoc = oApp.Documents.Add(ref template, ref missing, ref missing, ref missing);
                Word.Range oRng = oDoc.Range(ref missing, ref missing);
    
                foreach (Control Controles in this.Controls)
                {
                    if (Controles is MaskedTextBox)
                    {
                        String vdestino = ((MaskedTextBox)(Controles)).Text.ToString();
                        String vorigem = "[" + ((MaskedTextBox)(Controles)).Name.ToString() + "]";
    
                        object FindText = vorigem;
                        object ReplaceWith = vdestino;
    
                        object MatchWholeWord = true;
                        object Forward = true;
    
                        oRng.Find.Execute(ref FindText, ref missing, ref MatchWholeWord, ref missing, ref missing, ref missing, ref Forward, ref missing, ref missing, ref ReplaceWith, ref missing, ref missing, ref missing, ref missing, ref missing);
                        
                    } else if (Controles is RichTextBox)
                    {
                        String vdestino = ((RichTextBox)(Controles)).Text.ToString();
                        String vorigem = "[" + ((RichTextBox)(Controles)).Name.ToString() + "]";
    
                        object FindText = vorigem;
                        object ReplaceWith = vdestino;
    
                        object MatchWholeWord = true;
                        object Forward = false;
    
                        oRng.Find.Execute(ref FindText, ref missing, ref MatchWholeWord, ref missing, ref missing, ref missing, ref Forward, ref missing, ref missing, ref ReplaceWith, ref missing, ref missing, ref missing, ref missing, ref missing);
                    
                    }
                }
    
                oRng = oDoc.Range(ref missing, ref missing);
                oApp.Visible = true;
                #endregion EDITA O ARQUIVO DO WORD

    quarta-feira, 28 de novembro de 2012 12:28
  • "According to another site I've read, word uses a vertical tab character for a line break. This is character 11 in ASCII, so you could get it like this:

    1 char vt = (char)11;



    Then add it to the document."

    Parece que no word é esse caracter ai.

    Ja tentou usar o OpenXml?

    http://openxmldeveloper.org/

    quarta-feira, 28 de novembro de 2012 13:04