Você está aqui: C# ::: Namespace System.Windows.Forms ::: Control |
Como detectar o evento KeyDown da classe Control em suas aplicações C# Windows FormsQuantidade 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. |
![]() |
C# ::: Windows Forms ::: Formulários e Janelas |
C# Windows Forms - Como obter a quantidade de controles em um formulário usando a propriedade Controls.CountQuantidade 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 é bissextoQuantidade 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 StringQuantidade 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 LINQQuantidade 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 PredicateQuantidade 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 RandomQuantidade 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 |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |