Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: C# ::: Namespace System.Windows.Forms ::: Control

Como detectar o evento KeyDown da classe Control em suas aplicações C# Windows Forms

Quantidade de visualizações: 2742 vezes
O evento KeyDown é declarado originalmente na classe Control e ocorre quando uma tecla é pressionada (mas não liberada) enquanto o controle possui o foco. É importante observar onde o evento KeyDown se localiza na sequencia de passos produzida pelo pressionamento e liberação de uma tecla:

1) KeyDown - A tecla é abaixada (pressionada);
2) KeyPress - O evento KeyPress ocorre;
3) KeyUp - A tecla é liberada.

Veja que há três eventos do teclado que você pode capturar, e o evento KeyDown é o primeiro da lista.

Quando o evento KeyDown ocorre, o tratador de evento recebe um objeto da classe KeyEventArgs. Até o .NET Plataform 3.0, esta classe possui várias propriedades, entre elas a propriedade KeyValue, que permite obter a representação numérica da propriedade KeyCode (que retorna o código da tecla pressionada).

Veja um trecho de código no qual usamos o evento KeyDown do formulário para exibir um número inteiro representando o código da tecla pressionada:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

private void Form1_KeyDown(object sender, KeyEventArgs e){
  // obtém a representação numérica do código da tecla pressionada
  int codigo = e.KeyValue;

  // mostra o resultado
  MessageBox.Show("O código da tecla pressionada é: " + codigo);
}

Note que as propriedades KeyValue e KeyCode estão disponíveis apenas nos eventos KeyDown e KeyUp, uma vez que estes recebem um objeto da classe KeyEventArgs. O evento KeyPress recebe um objeto da classe KeyPressEventArgs.

Link para compartilhar na Internet ou com seus amigos:

C# ::: Windows Forms ::: Formulários e Janelas

C# Windows Forms - Como obter a quantidade de controles em um formulário usando a propriedade Controls.Count

Quantidade de visualizações: 8164 vezes
Em algumas situações nós precisamos saber quantos controles existem atualmente em um formulário Windows Forms. Isso pode ser feito com uma chamada à propriedade Count da classe ControlCollection. Um objeto da classe ControlCollection é retornado quando acessamos a propriedade Controls de um formulário (e presente também em outros controles que podem conter controles filhos).

Veja um trecho de código no qual obtemos a quantidade de controles em um formulário ao clicarmos em um botão:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // vamos obter a quantidade de controles no formulário
  int quantControles = this.Controls.Count;

  // vamos exibir o resultado
  MessageBox.Show("O formulário contém " + quantControles + 
    " controles.");
}

Note que a coleção ControlCollection retorna apenas os controles visuais no formulário, ou seja, componentes tais como Timer, DirectoryEntry, etc, não são incluídos.


C# ::: Dicas & Truques ::: Strings e Caracteres

Como converter uma string em um array de char em C# usando a função ToCharArray()

Quantidade de visualizações: 9739 vezes
Nesta dica mostrarei como podemos usar a função ToCharArray() da classe String da linguagem C# para converter todos os caracteres de uma palavra, frase ou texto em um vetor de chars. Em seguida nós usaremos o método Reverse() da classe Array para inverter a ordem dos elementos do vetor. Finalmente nós passamos este vetor para o construtor da classe String para obter a string original novamente, só que desta vez, com a ordem de suas letras invertidas.

Veja o código C# completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto de C#";
      Console.WriteLine("Frase original: " + frase);

      // obtém um array de caracteres a partir da string
      char[] letras = frase.ToCharArray();
      Array.Reverse(letras); // inverte o array

      // transforma em string novamente
      string resultado = new String(letras);
      Console.WriteLine("Frase invertida: " + resultado);

      Console.WriteLine();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Frase original: Gosto de C#
Frase invertida: #C ed otsoG


C# ::: Datas e Horas ::: DateTime

Como usar o método IsLeapYear() da estrutura DateTime do C# para verificar se um determinado ano é bissexto

Quantidade de visualizações: 7455 vezes
Podemos verificar se um determinando ano é bissexto usando o método IsLeapYear() da estrutura DateTime. Este método recebe um valor inteiro representando o ano com 4 dígitos e retorna um valor true ou false. Veja o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

static void Main(string[] args){
  // vamos verificar se o ano 2008
  // é bissexto
  int ano = 2008;

  if(DateTime.IsLeapYear(ano))
    Console.WriteLine("O ano informado é bissexto");
  else
    Console.WriteLine("O ano informado NÃO é bissexto");

  // pausa o programa
  Console.ReadKey();
}

Este método pode disparar uma exceção ArgumentOutOfRangeException se o valor do ano for menor que 1 ou maior que 9999.


C# ::: Dicas & Truques ::: Strings e Caracteres

Como contar as palavras de uma frase ou texto em C# usando as funções IndexOf(), Replace() e Split() da classe String

Quantidade de visualizações: 12181 vezes
Este exemplo mostra como retornar a quantidade de palavras em uma frase ou texto usando métodos da classe String do C#. Veja como usar os métodos IndexOf() e Replace() para remover os espaços em excesso e, em seguida, o método Split() para quebrar as partes da frase ou texto usando um único espaço como separador.

Veja o código completo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      string frase = "Gosto muito de C# e Java";
      int cont = 0;

      // remove os espaços em excesso
      while (frase.IndexOf("  ") >= 0) {
        frase = frase.Replace("  ", " ");
      }

      // remove espaços antes e depois da string
      frase = frase.Trim();

      // conta as palavras
      cont = frase.Split(" ").Length;
      Console.WriteLine("A frase contém " + cont + " palavras");

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

A frase contém 6 palavras


C# ::: LINQ ::: LINQ to Objects

Como retornar o menor elemento em um array de int em C# usando a função Min() do LINQ

Quantidade de visualizações: 1253 vezes
Nesta dica mostrarei, em um exemplo bem simples, como podemos usar o método Min() do LINQ (Language-Integrated Query) do C# para retornar o menor elemento de um vetor de inteiros.

Note que temos um vetor de int com os valores {5, 2, 8, 3, 0, 1} e o valor 0 deverá ser retornado como sendo o menor.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;
using System.Linq;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      // vamos construir um vetor de inteiros
      int[] valores = {5, 2, 8, 3, 0, 1};

      // vamos obter o menor elemento do vetor
      int menor = valores.Min();

      // vamos mostrar o resultado
      Console.WriteLine("O menor valor é: {0}", menor);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

O menor valor é: 0

Fique atento ao fato de que o método Min() pode atirar uma exceção do tipo InvalidOperation se o array ou coleção estiver vazia ou não incluir nenhum elemento que se encaixe nas condições testadas.

Veja o resultado ao chamarmos este método em um vetor vazio:

System.InvalidOperationException
HResult=0x80131509
Message=Sequence contains no elements
Source=System.Linq
StackTrace:
at System.Linq.ThrowHelper.ThrowNoElementsException()
at System.Linq.Enumerable.Min(IEnumerable`1 source)
at Estudos.Principal.Main(String[] args) in C:\estudos_c#\Estudos\Principal.cs:line 11


C# ::: Dicas & Truques ::: Arrays e Matrix (Vetores e Matrizes)

Como pesquisar um valor em um array C# usando o método Find() e um Predicate

Quantidade de visualizações: 12917 vezes
Nesta dica veremos como usar o método Find() da classe Array e um método Predicate para pesquisar um item em um vetor de string na linguagem C#. Note que a função Predicate é fornecida como segundo argumento para o método Find().

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // cria e inicializa um array de strings
      string[] cidades = {"Goiânia", "São Paulo",
        "Rio de Janeiro", "Curitiba"};

      // pesquisa o valor "Goiânia"
      string item = Array.Find(cidades, pesquisar);
      Console.WriteLine(item != null ? "Item encontrado" :
        "Item não encontrado.");

      Console.WriteLine("\n\nPressione uma tecla para sair...");
      Console.ReadKey();
    }

    // método auxiliar que serve como Predicate para localizar
    // o valor desejado
    private static bool pesquisar(String cid) {
      return (cid.Equals("Goiânia") ? true : false);
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Item encontrado


C# ::: Fundamentos da Linguagem ::: Estruturas de Controle

Como usar o laço do...while da linguagem C#

Quantidade de visualizações: 11806 vezes
O laço do...while (faça...enquanto) é usado quando queremos repetir uma instrução ou bloco de instruções ENQUANTO uma condição for satisfatória. A única diferença entre este laço e o laço while, é que, no laço do...while a condição de parada é testada após a iteração, o que garante que o laço do...while será executado no mínimo uma vez. No laço while a condição é testada antes da iteração. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

static void Main(string[] args){
  int valor = 1;

  do{
    Console.WriteLine("{0}", valor);
    valor++;
  }while(valor <= 10);

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

Este trecho de código conta de 1 até 10. Veja que após cada iteração do laço nós testamos se o valor da variável de controle é menor ou igual a 10. A próxima iteração acontece somente se esta condição for satisfeita. Note ainda que dentro de cada iteração nós incrementamos o valor da variável de controle. Isso é feito para que o laço não seja executado infinitamente.

Veja um outro exemplo de laço do...while, desta vez simulando um menu de opções:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

static void Main(string[] args){
  // variável que registra a opção do usuário
  int opcao;

  // laço do..while que mostra as opções do menu enquanto
  // o valor -1 não for informado
  do{
    // lê a opção
    Console.Write("Informe a opção 1, 2 ou 3" +
      " (-1 para sair): ");
    opcao = int.Parse(Console.ReadLine());

    switch (opcao){
      case 1:
        Console.WriteLine("Executando a opção 1");
        break;
      case 2:
        Console.WriteLine("Executando a opção 2");
        break;
      case 3:
        Console.WriteLine("Executando a opção 3");
        break;
      default:
        Console.WriteLine("Opção incorreta");
        break;
    }
  }while(opcao != -1);

  Console.WriteLine("\n\nPressione uma tecla para sair...");
  Console.ReadKey();
}

O laço do...while não é tão usado quanto o laço while. Use-o naquelas situações em que o laço deverá ser executado no mínimo uma vez.


C# ::: Dicas & Truques ::: Strings e Caracteres

Como embaralhar os caracteres de uma string em C# usando um objeto da classe Random

Quantidade de visualizações: 10922 vezes
Nesta dica mostrarei como podemos embaralhar os caracteres de uma palavra, frase ou texto na linguagem C#. Para isso nós faremos uso do método ToCharArray() da classe String para extrair os caracteres da string como um vetor de chars.

Em seguida usaremos um objeto da classe Random para gerar números randômicos que serão usados para auxiliar na troca dos caracteres contidos no vetor.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda para ajustar o código abaixo de acordo com as
suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar)

Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar
a manter o site livre de anúncios. Ficaremos eternamente gratos ;-)
Nosso PIX é: osmar@arquivodecodigos.com.br 
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Principal {
    static void Main(string[] args) {
      string palavra = "ARQUIVO";

      // converte em uma matriz de caracteres
      char[] letras = palavra.ToCharArray();

      // mostramos a palavra original
      Console.WriteLine("Palavra original: " + palavra);

      // vamos embaralhar 5 vezes
      embaralhar(ref letras, 5);

      // junta as partes da string novamente
      string nova_palavra = new String(letras);

      // exibe o resultado
      Console.WriteLine("Palavra embaralhada: " + nova_palavra);

      Console.WriteLine("\nPressione uma tecla para sair...");
      Console.ReadKey();
    }

    static void embaralhar(ref char[] array, int vezes) {
      Random rand = new Random(DateTime.Now.Millisecond);

      for (int i = 1; i <= vezes; i++) {
        for (int x = 1; x <= array.Length; x++) {
          trocar(ref array[rand.Next(0, array.Length)],
            ref array[rand.Next(0, array.Length)]);
        }
      }
    }

    static void trocar(ref char arg1, ref char arg2) {
      char strTemp = arg1;
      arg1 = arg2;
      arg2 = strTemp;
    }
  }
}

Ao executar este código C# nós teremos o seguinte resultado:

Palavra original: ARQUIVO
Palavra embaralhada: UVIARQO


Vamos testar seus conhecimentos em Topografia

Rumo e Azimute

Concurso Analista Ambiental - Engenheiro Agrimensor.

Observe a figura abaixo e assinale a alternativa correta.



A) Rumo de A2: N59ºE e Azimute de A1: 59º

B) Rumo de A2: S37ºW e Azimute de A2: 217º

C) Rumo de A1: N23ºE e Azimute de A2: 337º

D) Rumo de A3: S48ºE e Azimute de A1: 37º

E) Rumo de A2: N37ºE e Azimute de A1: 132º
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Construção Civil

Processos e técnicas construtivas de instalações elétricas e hidráulicas

As instalações prediais de água fria têm a função de distribuir água potável em temperatura ambiente, enquanto as instalações prediais de água quente distribuem água aquecida, sempre observando a segurança dos usuários. Analise as afirmativas a seguir, referentes às instalações prediais de água fria e água quente.

I. As colunas de distribuição têm a função de conduzir a água a partir dos barriletes com destino aos ramais, tanto na instalação de água fria quanto na instalação de água quente.

II. Os aquecedores de acumulação se caracterizam pela capacidade de armazenamento de água, que é aquecida em um reservatório componente do equipamento.

III. O sistema de aquecimento individual, em uma edificação, consiste naquele que alimenta todos os pontos de utilização de um único apartamento.

IV. As bitolas das tubulações empregadas em uma rede de distribuição de água devem diminuir a partir do barrilete em direção ao sub-ramal.

Assinale a alternativa que apresenta somente a(s) afirmativa(s) correta(s).

A) Apenas a afirmativa I está correta.

B) Apenas a afirmativa III está correta.

C) Apenas as afirmativas II e III estão corretas.

D) Apenas as afirmativas I, II e IV estão corretas.

E) As afirmativas I, II, III e IV estão corretas.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fenômeno de Transportes e Hidráulica

Vazão de projeto

O escoamento livre em condutos é caracterizado por ter uma superfície livre, cuja pressão atuante é a pressão atmosférica.

Considere o dimensionamento de um canal de drenagem em terra com vegetação rasteira nos taludes e fundo, possui: taludes 2H: 1V e declividade de fundo (So) de 20cm/km. Ele foi dimensionado para uma determinada vazão de projeto Q, tendo chegado a uma seção com largura de fundo (b) igual a 1,5m e altura da lâmina de água (yo) 1,30m. Determine qual a vazão Q do projeto e indique se a seção é de mínimo perímetro molhado.

Dados: 0,025 (cobertura vegetal rasteira).

A) Vazão de projeto de 2,45m3/s e satisfaz a condição de mínimo perímetro molhado.

B) Vazão de projeto de 2,72m3/s e satisfaz a condição de mínimo perímetro molhado.

C) Vazão de projeto de 3,94m3/s e satisfaz a condição de mínimo perímetro molhado.

D) Vazão de projeto de 3,54m3/s e não satisfaz a condição de mínimo perímetro molhado.

E) Vazão de projeto de 2,99m3/s e não satisfaz a condição de mínimo perímetro molhado.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Segurança e Estados Limites Ações nas Estruturas de Concreto Armado

O dimensionamento de elementos estruturais deve ser realizado considerando os critérios de segurança estabelecidos pela NBR 6118/2023 (Projeto de estruturas de concreto), especificamente relacionados ao ELS e ao ELU.

Com relação aos estados limites e aos critérios de segurança das edificações, assinale a resposta correta.

A) As combinações do ELS são utilizadas para o dimensionamento das estruturas ao colapso.

B) As deformações são analisadas somente nos ELS.

C) Para combinações no ELU, o valor característico da resistência do concreto armado deve ser superior ao valor de cálculo das solicitações.

D) Para verificações de ELS, o valor de cálculo da combinação das ações deve ser inferior ao valor limite adotado para seu efeito.

E) Os valores de combinações no ELS serão sempre superiores às combinações no ELU.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em

Resistência do concreto

De acordo com a NBR 6118/2014 - Projeto de Estruturas de Concreto - Procedimento, os valores das tensões resistentes de cálculo são estabelecidos, em cada caso particular, a partir das teorias de resistência dos elementos estruturais considerados.

Com base nesta norma, determine o valor da resistência de cálculo (fcd) a ser adotado para um concreto de fck = 40 MPa, sob condições normais de carregamento, considerando o fator de segurança adequado para este caso.

A) fcd = 28,6 MPa.

B) fcd = 33,3 MPa.

C) fcd = 34,8 MPa.

D) fcd = 40 MPa.

E) fcd = 56 MPa
Verificar Resposta Estudar Cards Todas as Questões

Desafios, Exercícios e Algoritmos Resolvidos de C#

Veja mais Dicas e truques de C#

Dicas e truques de outras linguagens

E-Books em PDF

E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 32 usuários muito felizes estudando em nosso site.