C# teclado

tenho uma aplicacao em windows com um form e botao no evento onclick do botao ele realiza determinada tarefa quero que ao pressionar uma tecla exemplo F ele clique no botao como se fosse com o mouse como fazer isso


private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyCode = Keys.F1){

Form2 frm = new Form2();
frm.Show();

}
}

nao funciona

H:\FABIO\WindowsAplication\Contato\Contatos\Form1.cs(579): Cannot implicitly convert type ‘System.Windows.Forms.Keys’ to ‘char’

Troca o Keys.F1 por KeyEvent.VK_F1

EDIT:

Agora vc percebi vc esta esta igualando eles no if por isso da erro

if (e.KeyCode = Keys.F1) //errado


if (e.KeyCode == Keys.F1) //nunca esqueça que parar comparar deve se utilizar dois iguais

private void Form1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{

if (e.KeyChar == Keys.F1)
{   

Form2 frm = new Form2();   
frm.Show();   

}   

}

H:\FABIO\WindowsAplication\Contato\Contatos\Form1.cs(581): Operator ‘==’ cannot be applied to operands of type ‘char’ and ‘System.Windows.Forms.Keys’

se eu fizer assim
if (e.KeyChar.ToString() == Keys.F1.ToString())
if (e.KeyChar == (char)Keys.Enter){ //assim tambem nao funciona nao faz nada

ai nao da erro porem nao abre
pressiono F1 no forme e nao faz nada nao acontece nada

[quote=Jose111]Troca o Keys.F1 por KeyEvent.VK_F1
[/quote]

Vc tentou fazer isso?

EDIT:

Agora que percebi que era C# :lol: :lol: :lol: :lol: não sei como você pode resolver já que não sei nada de C# , mals aew!

[quote=Jose111][quote=Jose111]Troca o Keys.F1 por KeyEvent.VK_F1
[/quote]

Vc tentou fazer isso?[/quote]
Tem esse “KeyEvent.VK_F1” no CSharp?

Inté.

Uma das maneiras é tratar o evento KeyUp, mas não a mais recomendada no caso da tecla F1.

        private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            if ((Keys) e.KeyValue == Keys.F1) // não recomendado!
            {
                MessageBox.Show("Pressed F1");
            }
        }

Para a tecla F1 (Ajuda), o correto é tratar o evento de HelpRequested (Ajuda solicitada):

        private void Form1_HelpRequested(object sender, HelpEventArgs hlpevent)
        {
            MessageBox.Show("The correct way of showing help");
        }
	private void Form1_KeyUp(object sender, KeyEventArgs e)   
	{   
		if ((Keys) e.KeyValue == Keys.F1) // não recomendado!   
		{   
			MessageBox.Show("Pressed F1");   
		}   
	}

isso ai tambem nao acontece nada nao resulta em nada quand clica no link

clico nos eventos do form e coloco o event_KeyUp e nao acontece nada

RESOLVIDO

private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e){
	if(e.KeyCode == Keys.F1)
	{
Form3 novaform = new Form3();
	novaform.Show();
				
		}

o que faltou foi fazer isso
não se esqueça de definir KeyPreview = true para o formulario

valeu a ajuda de todos

Estou com esse problema também. Tenho o seguinte código:

private void txtChave_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show(“Tecla Enter ativada!”);
}
}

[b]Onde txtChave é um campo TextBox. A idéia era que ao preencher o TextBox e teclar Enter, um evento era disparado tratando o valor do campo etc e tal.

Porém isso não acontece de jeito nenhum. Já setei a propriedade KeyPreview do form para True mas nada.

Simplesmente não consigo capturar o evendo quando a tecla Enter é pressionada. Isso que eu quero não é viável em um TextBox?

Aguém poderia me ajudar?[/b]

[quote=rob.coutinho]Estou com esse problema também. Tenho o seguinte código:

private void txtChave_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
MessageBox.Show(“Tecla Enter ativada!”);
}
}

[b]Onde txtChave é um campo TextBox. A idéia era que ao preencher o TextBox e teclar Enter, um evento era disparado tratando o valor do campo etc e tal.

Porém isso não acontece de jeito nenhum. Já setei a propriedade KeyPreview do form para True mas nada.

Simplesmente não consigo capturar o evendo quando a tecla Enter é pressionada. Isso que eu quero não é viável em um TextBox?

Aguém poderia me ajudar?[/b][/quote]

http://www.codeproject.com/KB/edit/CustomizedTextBox.aspx

Ou eu não soube usar ou esse código não ajudou mto no que eu queria…