none
Palavra reservada em determinado estilo e cor em quando digitada numa richTextBox - C#

    Question

  • Boas usuários, eu estou desenvolvendo um suíte integrada de desenvolvimento (IDE), por enquanto somente para teste, mais surgiu está dúvida. Eu quero tipo quando eu digite uma palavra reservada ela mude o estilo e cor no mesmo momento que digitada, exemplo:

    Palavra reservada: Ola

    ---> Quando digitar "Ola" ela fique em negrito e na cor azul.

    Sendo que pode ter diversas palavras reservadas, sendo elas com cores e estilos diferentes. Como faço isso?

    Obs.: Lembrando que eu já encontrei diversos tutoriais sobre isso e já consegui mais ou menos o que queria -- foi mais as cores -- só que tem um erro, toda vez que digito a palavra reservada ela tipo é atualizada por um timer que é opcional colocar, e quando digitamos em torno de 20 linhas fica impossível de ler, pois ele atualiza palavra-por-palavra até chegar na atual.

    Sunday, January 22, 2012 1:33 PM

Answers

All replies

  • A cor da palavra voce já conseguiu mudar, certo?

    Você pode usar um Dicionario ligando a palavra e a Cor.

    Ola -> Azul

    Adeus -> Vermelho

     

    Para fazer isso funcionar, voce vai ter que estudar um pouco de Analise Léxica. (caso não conheca).

    http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node50.html

     

    A busca está lenta por que você tem que fazer em uma outra Thread.


    Marcilio Prog. Computadores Se foi útil, marque.
    Sunday, January 22, 2012 7:34 PM
  • Use os métodos e propriedades de seleção apenas para colorir enquanto o usuário digita,e em outra Thread,como o Marcilio sugeriu.Se o usuário cola um texto grande,formate o RTF dinamicamente.O ganho de desempenho é enorme em relação ao método que você está usando.

    Veja esse tutorial:

    http://www.codeproject.com/Articles/21447/Making-the-b-Syntax-highlighting-textbox-written-i

    Sunday, January 22, 2012 8:10 PM
  • Bom, isto foi de bom tamanho, mais eu queria algo mais simples não tem como? Eu sou novato em C# mais consigo fazer ótimas aplicações e estou com essa pedra no caminho...

    Tem um jeito mais fácil de fazer, ou pelo menos incorporar a palavra no próprio textBox colocado? Porque nesse exemplo são dois um digita normal e o outro mostra editado, eu quero a edição no próprio. Por favor, obrigado.

    Sunday, January 22, 2012 9:04 PM
  • Você pode fazer no próprio RichTextBox.Basta editar o exemplo.
    Sunday, January 22, 2012 9:31 PM