Access Keys
Uma tecla de acesso é um caractere sublinhado no texto de um menu, item de menu, ou o rótulo de um controle como um botão. Ele permite o usuário “clicar” em um botão, pressionando a tecla ALT em combinação com a tecla de acesso predefinido. Por exemplo, se um botão executa um procedimento para imprimir um formulário, e, portanto, sua propriedade Text é definido como “Imprimir”, acrescentando um e comercial antes da letra “i” faz com que a letra “i”, seja sublinhada no texto do botão em tempo de execução tempo. O usuário pode executar o comando associado ao botão pressionando ALT + I. Você não pode ter uma chave de acesso para um controle que não pode receber o foco, por exemplo, um controle TabPage.
CheckBox
Representa um CheckBox do Windows
CheckedChanged
Ocorre quando o valor da propriedade Checked muda entre postagens para o servidor.
TextBox
Representa um controle de caixa de texto do Windows.
KeyPreview
Obtém ou define um valor indicando se o formulário receberá eventos de teclas antes do evento ser passado para o controle que tem o foco.
HotKeys
É o termo utilizado para teclas de atalho em C#
Keys Enumeration
Esta enumeração tem um atributo FlagsAttribute que permite uma combinação bit a bit de seus valores de membro. Pode ser usado através da classe Keys.
KeyDown
É um evento que ocorre quando uma tecla é pressionada enquanto o controle tem foco.
Exemplo:
Neste exemplo mostramos como usar o componente checkbox seus eventos e como usar hotkeys para manipular o checkbox e imprimir o resultado dentro de um componente textbox.
C#
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApplication14
{
public partial class Form1 : Form
{
// Define componentes
Label rotulo;
CheckBox opc1;
CheckBox opc2;
CheckBox opc3;
TextBox texto;
public Form1()
{
InitializeComponent();
}
private void Form1_Shown(object sender, EventArgs e)
{
// Cria componentes dinamicamente no evento form shown
rotulo = new Label();
opc1 = new CheckBox();
opc2 = new CheckBox();
opc3 = new CheckBox();
texto = new TextBox();
// posiciona componentes no form
rotulo.Location = new Point (5, 10);
opc1.Location = new Point (5, 30);
opc2.Location = new Point(5, 50);
opc3.Location = new Point(5, 70);
texto.Location = new Point(5, 100);
// adiciona a propriedade de texto nos componentes
rotulo.Text = "Escolha um Checkbox ou pressione A, B ou C:";
opc1.Text = "Opção 1 - Alt + &X";
opc2.Text = "Opção 2 - Alt + &Y";
opc3.Text = "Opção 3 - Alt + &Z";
// seta a propriedades para a caixa de texto
texto.Multiline = true;
texto.ScrollBars = ScrollBars.Vertical;
texto.ReadOnly = true;
// Define o tamanho dos objetos no form
rotulo.Size = new Size(250, 20);
opc1.Size = new Size(130, 20);
opc2.Size = new Size(130, 20);
opc3.Size = new Size(130, 20);
texto.Size = new Size(250, 100);
// Define eventos para o checkbox
opc1.CheckedChanged += new System.EventHandler(opc1_CheckedChanged);
opc2.CheckedChanged += new System.EventHandler(opc2_CheckedChanged);
opc3.CheckedChanged += new System.EventHandler(opc3_CheckedChanged);
// Ativa a previsão de teclas do form
Form1.ActiveForm.KeyPreview = true;
// Nome do form
Form1.ActiveForm.Text = "Desenvolvimento Aberto";
// Adiciona componentes ao form
Form1.ActiveForm.Controls.Add(rotulo);
Form1.ActiveForm.Controls.Add(opc1);
Form1.ActiveForm.Controls.Add(opc2);
Form1.ActiveForm.Controls.Add(opc3);
Form1.ActiveForm.Controls.Add(texto);
}
// Eventos do checkbox
private void opc1_CheckedChanged(object sender, EventArgs e)
{
texto.AppendText("Você clicou no checkbox 1\n");
}
private void opc2_CheckedChanged(object sender, EventArgs e)
{
texto.AppendText("Você clicou no checkbox 2\n");
}
private void opc3_CheckedChanged(object sender, EventArgs e)
{
texto.AppendText("Você clicou no checkbox 3\n");
}
// Evento de tecla pressionada
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.A)
{
if (opc1.Checked == true)
{
opc1.Checked = false;
}
else
{
opc1.Checked = true;
}
}
if (e.KeyCode == Keys.B)
{
if (opc2.Checked == true)
{
opc2.Checked = false;
}
else
{
opc2.Checked = true;
}
}
if (e.KeyCode == Keys.C)
{
if (opc3.Checked == true)
{
opc3.Checked = false;
}
else
{
opc3.Checked = true;
}
}
}
}
}

