Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > .NET
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-09-2008
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
Leer los botones con teclado

Hola:

He hecho un ejemplo colocando dos botones normales y un label1. Al pulsar el botón suelta un mensaje al label1:

Has pulsado la A.

Si pulso el botón con el ratón funciona bien como dije arriba, ahora al pulsar el teclado la letra "A" o la letra "B" no pasa nada.

La pregunta es. ¿Existe la posibiliodad de esa opción?





Code Snippetusing System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

namespace Leer_boton

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

private void button1_Click(object sender, EventArgs e)

{

label1.Text = "Has pulsado la A";

}

private void button2_Click(object sender, EventArgs e)

{

label1.Text = "Has pulsado la B";

}

}

}
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
  #2  
Antiguo 16-09-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
¿Puedes capturar algun mensaje tipo KeyDown para las teclas que llame al OnClick del botón correspondiente segun la tecla?
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 16-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Al Text del Button, en lugar de definirlo como "A", definelo como "&A"
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #4  
Antiguo 25-09-2008
Avatar de __hector
[__hector] __hector is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Santo Domingo, Rep. Dom.
Posts: 1.075
Poder: 23
__hector Va por buen camino
Si coloca &A tendria que presionar Alt+A para simular el clic. Tienes la posibilidad de activar la propiedad KeyPreview del Form y evaluar la tecla presionada en el evento keydown, como te recomendaron anteriormente.
__________________
Héctor Geraldino
Software Engineer
Responder Con Cita
  #5  
Antiguo 26-09-2008
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 20
cHackAll Va por buen camino
Hola hector; ante la ausencia del interesado solo me queda
filosofar un poco acerca de este tema; yo tambien estoy convencido que lo dicho por Neftali es lo correcto, sin embargo considerando al formulario sin ningun otro control que no sea un par de botones y C# como lenguaje; lo que he comentado es lo que han pedido
__________________
RTFM > STFW > Foro > Truco > Post > cHackAll > KeBugCheckEx
Responder Con Cita
  #6  
Antiguo 26-09-2008
REHome REHome is offline
Miembro
 
Registrado: jul 2003
Ubicación: España
Posts: 454
Poder: 21
REHome Va por buen camino
Lo eh sacado.

Código:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace WAKeyPreview
{
    public partial class FormKeyPreview : Form
    {
        String Texto = "Se a presionado -> ";

        public FormKeyPreview()
        {
            InitializeComponent();
        }

        private void FormKeyPreview_Load(object sender, EventArgs e)
        {
            this.KeyPreview = true;
        }

        private void FormKeyPreview_KeyPress(object sender, KeyPressEventArgs e)
        {
            //switch (e.KeyChar)
            //{
            //    case (char)Keys.A:
            //        BtnA_Click(sender, new EventArgs());
            //        break;
            //    case (char)Keys.B:
            //        BtnB_Click(sender, new EventArgs());
            //        break;
            //    default:
            //        LblInfoPress.Text = Texto;
            //        break;
            //}
        }

        private void BtnA_Click(object sender, EventArgs e)
        {
            LblInfoPress.Text = Texto + " A";
        }

        private void BtnB_Click(object sender, EventArgs e)
        {
            LblInfoPress.Text = Texto + " B";
        }

        private void FormKeyPreview_KeyDown(object sender, KeyEventArgs e)
        {
            LblValue.Text = e.KeyValue.ToString();
            switch (e.KeyValue)
            {
                case 65:
                    BtnA_Click(sender, new EventArgs());
                    break;
                case 66:
                    BtnB_Click(sender, new EventArgs());
                    break;
                default:
                    LblInfoPress.Text = Texto;
                    break;
            }
        }
    }
}
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
  #7  
Antiguo 26-09-2008
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Poder: 25
egostar Va camino a la fama
Hola

Acabo de probar lo que comento nuestro amigo cHackAll y efectivamente, al asignar en el text de los botones &A y &B al presional la tecla A o la tecla B hace lo que quieres y te olvidas de validar el keypress de tal forma que te ahorras todo el código que pusiste colocando en los eventos OnClick de cada botón esto:

Código:
	private void button1_Click(object sender, System.EventArgs e)
	{
		label1.Text = "Has pulsado la A";
	}

	private void button2_Click(object sender, System.EventArgs e)
	{
		label1.Text = "Has pulsado la B";		
	}
Salud OS

Edito: Eso, claro, asumiendo que solo tengas esos botones, sin nada mas
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 26-09-2008 a las 02:15:48.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Leer buffer de teclado dieleo Varios 0 12-02-2007 19:23:19
como desactivar los botones de apagado rápido del teclado? pvizcay Windows 9 07-10-2006 20:50:41
Leer Puerto USB (Multi teclado USB) DTAR Varios 0 08-06-2006 16:36:48
Como leer todos los eventos del teclado en todas las aplicaciones?? JuanErasmo API de Windows 1 04-04-2006 16:35:43
USB Teclado en Red Hat 9 nicocer Linux 0 05-07-2004 22:04:56


La franja horaria es GMT +2. Ahora son las 22:40:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi