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

Como testar o estado da tecla Scroll Lock

Quantidade de visualizações: 7654 vezes
Em algumas situações nós precisamos verificar o estado da tecla Scroll Lock (alguém aí já descobriu a real utilidade desta tecla?), 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 Scroll Lock está ativada
  if(Control.IsKeyLocked(Keys.Scroll)){
    MessageBox.Show("A tecla Scroll Lock está ativada");
  }
  else{
    MessageBox.Show("A tecla Scroll Lock NÃO está ativada");
  }
}

Aqui nós usamos o método IsKeyLocked() da classe Control e fornecemos como argumento a constante Scroll, 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 Scroll Lock como um boolean
  bool ScrollLock = (((ushort)GetKeyState(0x91)) & 0xffff) != 0;

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


Link para compartilhar na Internet ou com seus amigos:

C# ::: Windows Forms ::: DataGridView

Como retornar a célula atual em um DataGridView do C# Windows Forms como um objeto da classe DataGridViewCell

Quantidade de visualizações: 12843 vezes
A célula atual de um DataGridView pode ser obtida por meio da propriedade CurrentCell. Esta propriedade retorna um objeto da classe DataGridViewCell. Por meio de propriedades e métodos desta classe podemos obter os índices da coluna e da linha às quais a célula pertence, seu valor, estilo, etc.

Veja um trecho de código no qual obtemos o valor da célula atual de um DataGridView:

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

private void button3_Click(object sender, EventArgs e){
  // vamos obter a célula atual (que possui o foco)
  DataGridViewCell celulaAtual = dataGridView1.CurrentCell;

  // vamos exibir o valor da célula atual
  string valor = celulaAtual.Value.ToString();
  MessageBox.Show("O valor da célula atual é: "
    + valor);
}

Se não houver célula atual no DataGridView, o retorno da propriedade CurrentCell será null.


C# ::: Windows Forms ::: DataGridView

Como retornar a coluna da célula selecionada em um DataGridView do C# Windows Forms

Quantidade de visualizações: 14635 vezes
Muitas vezes precisamos obter a coluna atual de uma determinada célula selecionada no DataGridView. Isso pode ser feito obtendo-se o índice da coluna da célula selecionada e então fornecendo este índice para a propriedade Columns da classe DataGridView. O retorno será um objeto da classe DataGridViewColumn, que representa uma coluna no DataGridView. Podemos usar esta classe para obter o índice da coluna que contém a célula selecionada, percorrer todas as células de uma determinada coluna, etc.

Veja um trecho de código no qual obtemos o DataGridViewColumn representando a coluna da célula selecionada:

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

private void button3_Click(object sender, EventArgs e){
  // vamos obter a coluna da célula selecionada
  DataGridViewColumn colunaAtual = 
    dataGridView1.Columns[dataGridView1.CurrentCell.ColumnIndex];

  // vamos exibir o índice da coluna atual
  int indice = colunaAtual.Index;
  MessageBox.Show("O índice da coluna atual é: " + indice);
}



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

Como obter a quantidade de dias em um determinado mês usando o método GetDaysInMonth() da classe GregorianCalendar do C#

Quantidade de visualizações: 12067 vezes
Em algumas situações precisamos saber quantos dias há em um determinado mês. Para isso podemos usar o método GetDaysInMonth() da classe Calendar (ou alguma de suas subclasses). Este método recebe dois valores inteiros: o ano e o mês desejado.

Na classe GregorianCalendar (que extende Calendar) o método GetDaysInMonth() retorna 28 para os anos comuns e 29 para os anos bissextos.

Veja um trecho de código no qual usamos o método GetDaysInMonth() para obter a quantidade de dias para o mês de Março de 2009:

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

static void Main(string[] args){
  // using System.Globalization;

  // obtém uma instância da classe GregorianCalendar
  Calendar c = new GregorianCalendar();

  // obtém a quantidade de dias para março de 2009
  int dias = c.GetDaysInMonth(2009, 3);

  // exibe o resultado
  Console.WriteLine("Este mês possui {0} dias", dias);

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

Note, contudo, que o mesmo resultado pode ser obtido por meio do calendário padrão independente de cultura, desde que as regiões as quais o programa se destina tenham compatibilidade de calendários:

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

Calendar c = CultureInfo.InvariantCulture.Calendar;

O método GetDaysInMonth() pode atirar uma exceção do tipo ArgumentOutOfRangeException se os valores do ano ou mês estiverem fora das faixas permitidas pelo calendário. Veja:

System.ArgumentOutOfRangeException was unhandled
  Message="Month must be between one and twelve.
   Parameter name: month"
  Source="mscorlib"
  ParamName="month"



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: 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á 41 usuários muito felizes estudando em nosso site.