Você está aqui: C# ::: Dicas & Truques ::: Mouse e Teclado

C# Windows Forms - Como testar o estado da tecla Num Lock em suas aplicações C# Windows Forms

Quantidade de visualizações: 8061 vezes
Em algumas situações nós precisamos verificar o estado da tecla Num Lock (que ativa ou desativa o teclado numérico), ou seja, precisamos saber se ela está ou não ativada. Em C# isso pode ser feito de duas formas:

1) A forma mais simples, oferecida no .NET Framework a partir da versão 2.0;
2) Usando código não gerenciado (unmanaged code) e acessar a API do Windows (Win32 API).

Vamos começar com a forma mais fácil, disponível no .NET Framework a partir da versão 2.0:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // vamos verificar se a tecla Num Lock está ativada
  if(Control.IsKeyLocked(Keys.NumLock)){
    MessageBox.Show("A tecla Num Lock está ativada");
  }
  else{
    MessageBox.Show("A tecla Num Lock NÃO está ativada");
  }
}

Aqui nós usamos o método IsKeyLocked() da classe Control e fornecemos como argumento a constante NumLock, da enumeração Keys.

A segunda forma consiste em usar código não gerenciado (unmanaged code) e acessar a API do Windows (Win32 API). Para isso devemos seguir os seguintes passos:

a) Adicionar

using System.Runtime.InteropServices;

na seção de importações.

b) Adicionar o código abaixo no corpo da classe, como um método:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

// Função com código não gerenciado que obtém o estado de uma
// determinada tecla

[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true, 
CallingConvention = CallingConvention.Winapi)]

public static extern short GetKeyState(int keyCode); 

c) Adicione o código abaixo no evento Click de um botão:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

private void button1_Click(object sender, EventArgs e){
  // vamos obter o estado da tecla Num Lock como um boolean
  bool NumLock = (((ushort)GetKeyState(0x90)) & 0xffff) != 0;

  // vamos verificar se a tecla Num Lock está ativada
  if(NumLock){
    MessageBox.Show("A tecla Num Lock está ativada");
  }
  else{
    MessageBox.Show("A tecla Num Lock NÃO está ativada");
  }
}


Link para compartilhar na Internet ou com seus amigos:

C# ::: Coleções (Collections) ::: List<T>

Como inserir um novo elemento em uma posição N de uma List<T> do C# usando a função Insert()

Quantidade de visualizações: 8919 vezes
Em algumas situações gostaríamos de inserir um novo elemento em uma determinada posição de uma List<T>, ou seja, queremos ser capazes de inserir o novo elemento em qualquer posição, e não somente no final da lista. Para isso podemos usar o método Insert(). Veja sua assinatura:

public void Insert(
  int index,
  T item
)
Veja que só precisamos fornecer o índice no qual o elemento será inserido e o elemento em si. Veja um exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

static void Main(string[] args){
  // vamos criar um objeto da classe List<T>
  List<int> valores = new List<int>();

  // vamos inserir quatro valores na lista
  valores.Add(5);
  valores.Add(2);
  valores.Add(6);
  valores.Add(9);

  // vamos usar o laço foreach para percorrer os elementos na lista
  Console.WriteLine("Elementos na lista:");
  foreach(int v in valores){
    Console.WriteLine(v);    
  }

  // vamos inserir um novo elemento no índice 2
  valores.Insert(2, 20);

  // vamos usar o laço foreach para percorrer os elementos na lista novamente
  Console.WriteLine("Elementos na lista:");
  foreach(int v in valores){
    Console.WriteLine(v);    
  }

  // vamos pausar a execução
  Console.ReadKey();
}

Ao executarmos este código teremos o seguinte resultado:

Elementos na lista:
5
2
6
9
Elementos na lista:
5
2
20
6
9

Este método pode lançar uma exceção do tipo ArgumentOutOfRangeException se o índice fornecido for menor que 0 ou superior à quantidade de itens na lista.


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

Como inverter o conteúdo de uma string C# usando as funções ToCharArray() e Reverse()

Quantidade de visualizações: 15949 vezes
Nesta dica mostrarei como podemos tirar proveito do método ToCharArray() da classe String e do método Reverse() da classe Array do C# para inverter a ordem dos caracteres de uma palavra, frase ou texto. Note que criei um método InverterString() que recebe uma string e a devolve invertida.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

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

      // inverte o conteúdo
      frase = InverterString(frase);
      Console.WriteLine("String invertida: " + frase);

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

    static string InverterString(string str) {
      char[] arrChar = str.ToCharArray();
      Array.Reverse(arrChar);
      string invertida = new String(arrChar);

      return invertida;
    }
  }
}

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

String original: Gosto de C# e Java
String invertida: avaJ e #C ed otsoG


C# ::: Dicas & Truques ::: Data e Hora

Como retornar o ano da data atual em C# usando a propriedade Year da classe DateTime

Quantidade de visualizações: 42 vezes
Nesta dica eu mostrarei como podemos usar a propriedade Year da classe DateTime da linguagem C# para obter o ano de uma determinada data como um inteiro.

Veja o código completo para o exemplo:

----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------

using System;

namespace Estudos {
  class Program {
    static void Main(string[] args) {
      // vamos obter a data e hora atual
      DateTime agora = DateTime.Now;

      // e agora o ano da data como um inteiro
      int ano = agora.Year;

      // e finalmente mostramos o resultado
      Console.WriteLine("Estamos no ano: {0}", ano);

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

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

Estamos no ano: 2022


Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Perfil em aço

O perfil de aço apresenta diversas características e uma infinidade de composições que podem permanecer resistentes por meio da conexão de diferentes peças mediante conexões.

A esse respeito, assinale a alternativa que indica corretamente o elemento de conexão de perfis de aço que oferece a possibilidade de união das peças de uma moldura de aço como se fosse um todo monolítico.

A) Rebite.

B) Pinos de alta resistência.

C) Pinos de aço-carbono.

D) Pinos de controle de tensão.

E) Solda.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Fundações

Fundações diretas: tipos, características, métodos construtivos e cálculo das tensões no solo

Um engenheiro verificou um problema de projeto na planta em uma edificação de grande porte: os pilares estavam muito próximos entre si. Desta forma, ele precisaria indicar ao mestre de obra um tipo de fundação mais apropriado, para não acarretar um problema estrutural devido à aproximidade dos pilares. A partir desta informação, assinale a alternativa correta:

A) Radier.

B) Sapata associada.

C) Bloco.

D) Sapata de divisa.

E) Sapata corrida.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Python

O código abaixo é válido em Python?

nome1 = "ALBERTO"
nome2 = 'FERNANDA'
print(nome1)
print(nome2)

A) Sim

B) Não
Verificar Resposta Estudar Cards Todas as Questões

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

Número de Reynolds

O parâmetro que determina se o regime de escoamento de um fluido é laminar ou turbulento recebe o nome de "número de Reynolds".

Nesse contexto, analise as seguintes afirmativas com (V) para as verdadeiras e (F) para as falsas.

( ) I. Quando Re ≤ Re,Crítico , o escoamento é considerado turbulento.

( ) II. O escoamento turbulento é caracterizado por camadas paralelas.

( ) III. O escoamento turbulento é aquele em que as partículas do fluido se misturam rapidamente enquanto se movimentam.

( ) IV. O número de Reynolds pode ser calculado pela equação:
Re = γ × g × V.

( ) V. Para tubos com paredes lisas, Re,Crítico = 40.000.

Marque a alternativa com a ordem correta.

A) V, F, F, V, F.

B) V, F, V, F, F.

C) F, F, V, F, V.

D) F, V, F, V, V.

E) V, V, V, F, F.
Verificar Resposta Estudar Cards Todas as Questões

Vamos testar seus conhecimentos em Engenharia Civil - Estruturas de Aço e Madeira

Ações em estruturas: apresentação dos principais carregamentos na análise de estruturas convencionais

As variações de temperatura causam ações nas estruturas. Tanto isso é verdade que é recomendado, em lajes com área grande, as tão conhecidas juntas de dilatação para evitar que ocorram fissuras no concreto devido às deformações causadas pelo carregamento térmico. A ação devido às variações de temperatura é classificada como?

A) Ação acidental direta.

B) Ação permanente indireta.

C) Ação permanente direta.

D) Ação acidental indireta.

E) Ação excepcional.
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

Códigos Fonte

Programa de Gestão Financeira Controle de Contas a Pagar e a Receber com Cadastro de Clientes e FornecedoresSoftware de Gestão Financeira com código fonte em PHP, MySQL, Bootstrap, jQuery - Inclui cadastro de clientes, fornecedores e ticket de atendimento
Diga adeus às planilhas do Excel e tenha 100% de controle sobre suas contas a pagar e a receber, gestão de receitas e despesas, cadastro de clientes e fornecedores com fotos e histórico de atendimentos. Código fonte completo e funcional, com instruções para instalação e configuração do banco de dados MySQL. Fácil de modificar e adicionar novas funcionalidades. Clique aqui e saiba mais
Controle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidadesControle de Estoque completo com código fonte em PHP, MySQL, Bootstrap, jQuery - 100% funcional e fácil de modificar e implementar novas funcionalidades
Tenha o seu próprio sistema de controle de estoque web. com cadastro de produtos, categorias, fornecedores, entradas e saídas de produtos, com relatórios por data, margem de lucro e muito mais. Código simples e fácil de modificar. Acompanha instruções para instalação e criação do banco de dados MySQL. Clique aqui e saiba mais

Linguagens Mais Populares

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



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