No internet connection
  1. Home
  2. Dúvidas Gerais

Projeto ByteBank - Deixar o Terminal colorido

Pessoal, implementei no meu projeto cores no terminal, para deixar mais intuitivo a interface no terminal e trouxe a idéia de como implementar no projeto de vocês para não deixar tudo branco.

  • Pra implementar a gente usa o:
Console.ForegroundColor = ConsoleColor.nomeDaCor

Console.WriteLine("Texto que vai pegar a cor de cima");

Console.ResetColor();
  • O uso do Console.ResetColor() serve para a cor voltar ao normal, se não usar o reset, todas as letras abaixo do Foreground vão ficar com a cor formatada, então o reset logo após volta ao normal a cor branca do terminal.

  • Exemplo do código acima em C#:

  • 39 respostas

There are 39 replies. Estimated reading time: 9 minutes

  1. Gabriele Martins Pereira @gabi.mp
      2022-12-22 15:06:47.038Z

      Não sei se alguem comentou, porém da pra mudar a cor de fundo do console também, não somente as letras.

      Console.BackgroundColor = ConsoleColor.COR;
      Console.Clear(); //Serve para mudar todo o console, e não apenas onde há coisas escritas
      
      1. T
        Em resposta aLuisGuilhermeNeves:
        Thiago Nebuloni @thiagonebuloni
          2022-12-16 09:59:34.263Z

          Que bela dica Luis!

          Já implementei no meu projeto do banco, criei uma função para reutilizar isso e destacar mensagens de erros e confirmações:

          static void WriteColor(string txt, string color) {
                      
                      if (color == "Red" || color == "red") {
                          Console.ForegroundColor = ConsoleColor.Red;
                          Console.WriteLine(txt);
                          Console.ResetColor();
                      }
                      else if (color == "Green" || color == "green") {
                          Console.ForegroundColor = ConsoleColor.Green;
                          System.Console.WriteLine(txt);
                          Console.ResetColor();
                      }
                  }
          

          A utilização ficou assim:

          WriteColor("\nNão foi possivel apresentar esta conta.\nMOTIVO: Conta não encontrada.", "Red");
          
          1. Lucas Ferreira @lksferreira
              2022-12-19 02:00:17.916Z

              Excelente, mas você pode ir mais longe, pense assim, a cores são parâmetros de uma determinada classe, e adivinha quem recebe parâmetros?? Exatamente a sua função, então eu também tive a necessidade de implementar algo parecido, a minha ficou desse jeito:

              A parte do loop foi ideia do @denilsonbezerra , o efeito ficou bem legal, depois vou postar um vídeo mostrando o sistema funcionando.

              1. TThiago Nebuloni @thiagonebuloni
                  2022-12-19 10:00:03.977Z

                  Muito bom Lucas! Aprendi mais essa.

                  Agora fiquei com duas dúvidas:

                  1- Qual o intuito do laço? Tive que usar logoString.Length dentro dele para não dar erro de index outside the bounds.

                  2- E o Sleep? Ele dá uma pausa entre as iterações? Mas não entendi a funcionalidade geral.

                  1. Lucas Ferreira @lksferreira
                      2022-12-19 11:13:45.372Z

                      O for é pra renderizar linha por linha
                      O sleep é pra animação ser percebida, caso contrario seria tão rápido que não perceberíamos

                      1. TThiago Nebuloni @thiagonebuloni
                          2022-12-19 12:22:03.169Z

                          Ah entendi agora. Precisa ser um texto longo para perceber a animação.

                          1. Denilson Bezerra @denilsonbezerra
                              2022-12-19 18:15:09.805Z

                              Não precisa necessariamente ser um texto longo para se ter uma animação, olha esse exemplo:

                              Nesse método ele recebe uma string text, passa um foreach para ler letra por letra (char por char) da string, então cada um dos caracteres que vão ser printados com uma pausa de tempo aleatório entre 0 e 100 milissegundos ou 0 e 120 milissegundo se a consição se encaixar no if, assim se cria um efeito como se o console estivesse digitando letra por letra.

                    • A
                      Em resposta aLuisGuilhermeNeves:
                      iara amancio @AntoniaIara
                        2022-12-24 03:35:10.839Z

                        Ótimas dicas, amei!

                        1. Em resposta aLuisGuilhermeNeves:
                          Bruno Soares @BrunoSoares
                            2022-12-16 14:50:00.571Z

                            Só pra complementar a ideia, pra facilitar a impressão de um mesmo caracter várias vezes dá pra escrever assim:

                            string minhaString = new string(caracter, n); 
                            

                            Onde caracter é o caracter que você quer que repita e n o número de vezes a ser impresso.

                            Ex.:

                            Console.WriteLine(new string('-', 100)); // isso imprime o caracter - 100 vezes
                            
                            1. Lucélia Batista @Luceliabatista
                                2022-12-16 16:51:41.305Z

                                Dica ótima, adorei

                                1. Em resposta aBrunoSoares:
                                  André Filipe @andresantos
                                    2022-12-16 14:58:51.701Z

                                    Isso tem boas aplicações

                                    1. Em resposta aBrunoSoares:
                                      Lucas Andrade @Lucas
                                        2022-12-16 16:12:35.863Z

                                        Gostei dessa dica ai! ja vou usar no projeto. Facilita bastante e deixa o código mais bonito

                                        1. Em resposta aBrunoSoares:
                                          Mauricio Santana @mauriciosm
                                            2022-12-16 22:12:57.123Z

                                            boa dica

                                            1. Em resposta aBrunoSoares:
                                              Gabriele Martins Pereira @gabi.mp
                                                2022-12-22 15:04:38.399Z

                                                Adorei a dica, estava precisando disso! Tem como repetir uma string no lugar de caracter, por exemplo: string minhaString = new string("----", n); ?

                                                1. Bruno Soares @BrunoSoares
                                                    2022-12-22 17:40:29.302Z

                                                    Desse jeito não pq o primeiro parâmetro é obrigatório ser um char, mas como achei tua dúvida bem interessante fui procurar e achei isso:

                                                    Fonte: https://stackoverflow.com/questions/3754582/is-there-an-easy-way-to-return-a-string-repeated-x-number-of-times
                                                    Tem outras soluções bem interessantes nesse post também se tiver interesse.
                                                    Testei e acho que saiu do jeito que você queria:

                                                    1. Gabriele Martins Pereira @gabi.mp
                                                        2022-12-26 16:56:18.136Z

                                                        Sensacional, muito obrigada! Acabei de usar aqui e funcionou!

                                                    2. Em resposta aBrunoSoares:

                                                      valeu a dica vou vou utilizar!

                                                    3. Em resposta aLuisGuilhermeNeves:
                                                      Larissa Leal @LariLeal
                                                        2022-12-16 13:36:46.187Z

                                                        Essa dica é ótima. Mas não entendi uma coisa, é nativo do vs ou precisa baixar uma lib?

                                                        1. Bruno Soares @BrunoSoares
                                                            2022-12-16 14:32:31.639Z

                                                            É nativo não precisa importar nada, dá pra usar dentro do código onde vc achar melhor e quantas vezes quiser.

                                                            1. Larissa Leal @LariLeal
                                                                2022-12-16 23:19:24.830Z

                                                                Ah perfeito, agora o programa vai ficar do meu jeitinho enquanto nao tem css, valeu!

                                                            2. Em resposta aLuisGuilhermeNeves:
                                                              Thiago Marinho @ThiagoMarinho
                                                                2022-12-16 14:12:30.736Z

                                                                Boa, vou implementar aqui

                                                                1. Em resposta aLuisGuilhermeNeves:
                                                                  Ricardo Vieira @Ricardo
                                                                    2022-12-16 16:50:44.773Z

                                                                    Boa !! Estava procurando como fazer isto, simples mas dá um diferencial.

                                                                    1. Em resposta aLuisGuilhermeNeves:
                                                                      Lettycia Cristina @lettyciacristina
                                                                        2022-12-16 22:25:25.413Z

                                                                        Nossa, dica incrível, muitooo obrigada Luis. Eu sou bem detalhista com estética e essa parte de cor vai ajudar bastante.

                                                                        1. Em resposta aLuisGuilhermeNeves:
                                                                          Bruno Coelho @BrunoCoelho
                                                                            2022-12-16 23:15:01.392Z

                                                                            Bacana Luis! Gosto de poder variar as cores para ajudar na leitura dos códigos.

                                                                            1. Em resposta aLuisGuilhermeNeves:
                                                                              Marco Sousa @marcosousa
                                                                                2022-12-16 15:36:59.562Z

                                                                                Muito bom!!! Ficou lindo!

                                                                                1. Em resposta aLuisGuilhermeNeves:
                                                                                  Lucélia Batista @Luceliabatista
                                                                                    2022-12-16 16:52:40.000Z

                                                                                    Que ideia legal, obrigada!!

                                                                                    1. Em resposta aLuisGuilhermeNeves:
                                                                                      MARIO IGOR BARBOSA @migorking
                                                                                        2022-12-16 19:07:11.875Z

                                                                                        ai você tirou 10!

                                                                                        1. Em resposta aLuisGuilhermeNeves:
                                                                                          Isabela Schadt @IsabelaSchadt
                                                                                            2022-12-18 21:24:50.585Z

                                                                                            Show Luis!! Adoro um FruFru, já vou implementar aqui kkkkkk vlw!!

                                                                                            1. Em resposta aLuisGuilhermeNeves:
                                                                                              Hebert Almeida Rocha @HebertRocha
                                                                                                2023-01-03 11:32:19.074Z

                                                                                                Caramba que legal, da pra deixar o sistema bem mais customizado e bonito com essa implementação.

                                                                                                1. Em resposta aLuisGuilhermeNeves:
                                                                                                  Hebert Almeida Rocha @HebertRocha
                                                                                                    2023-01-05 20:18:20.107Z2023-01-06 09:36:27.749Z

                                                                                                    Uma duvida que ficou, eu posso colocar a cor que eu quiser, tipo se eu passar um HEX: #111 ele vai ficar desta cor que no caso e preta, ou só posso usar cores por nomes, que são as principais, tipo: red, green, etc..???

                                                                                                    1. Tipo pelo que eu vi , só tem cores normais sem o uso do #HEX ou do HSL, apenas o nome das cores já setadas:

                                                                                                      1. Hebert Almeida Rocha @HebertRocha
                                                                                                          2023-01-06 09:37:34.593Z

                                                                                                          Sim fui testar tbm e não consegui adicionar outras cores, acho que como é terminal ele limita a essas cores ai mesmo, mas vlw

                                                                                                      2. L
                                                                                                        Em resposta aLuisGuilhermeNeves:
                                                                                                        LENNAN @lennanrnz
                                                                                                          2023-03-02 22:50:28.414Z

                                                                                                          pronto pra evoluir meu c# e deixar com mais cara de front

                                                                                                          1. Em resposta aLuisGuilhermeNeves:
                                                                                                            Luiza Ferreira @luizaferreirafonseca
                                                                                                              2023-10-29 18:01:46.056Z

                                                                                                              Que máximo! Obrigada pela dica. Isso faz com que fique mais intuitivo mesmo, além de ajudar na organização. Eu adoro essas funcionalidades.

                                                                                                              1. T
                                                                                                                Em resposta aLuisGuilhermeNeves:
                                                                                                                Tom Silva @TomSilva
                                                                                                                  2023-10-30 13:57:19.360Z

                                                                                                                  Ótimas dicas

                                                                                                                  1. B
                                                                                                                    Em resposta aLuisGuilhermeNeves:
                                                                                                                    Brenda Aniceto Bueno @Brenda
                                                                                                                      2023-10-30 14:07:05.853Z

                                                                                                                      Show!! Muito obrigada pela dica

                                                                                                                      1. Em resposta aLuisGuilhermeNeves:
                                                                                                                        Ana Karolina Souza @anakarolina
                                                                                                                          2023-10-31 21:57:21.986Z

                                                                                                                          Nossa, que legal! Obrigada pela dica, já irei aderir!

                                                                                                                          1. Em resposta aLuisGuilhermeNeves:
                                                                                                                            Christian Amsberg Janner @calemao
                                                                                                                              2023-10-31 22:14:20.770Z

                                                                                                                              Curioso porém deixei meu VS Code todo coloridinho kkkkkkkkkkkk, ficou mais legivel tambem para entender melhor o que está sendo feito, obrigado pela dica do terminal!

                                                                                                                              1. N
                                                                                                                                Em resposta aLuisGuilhermeNeves:

                                                                                                                                Várias dicas bacanas, adorei! Facilita muito no dia a dia.