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.275
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: 22
__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.556
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
  #8  
Antiguo 26-09-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Viendo el código se parece mucho a Delphi, es interesante.
Cuando tenga dinero y tiempo me conseguiré el c++Builder, aunque sea solo por curiosidad.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #9  
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
¿Así está mejor? Quiero ahcer el código más eficiente y corto.

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 BtnA_Click(object sender, System.EventArgs e)
	{
		label1.Text = "Has pulsado la A";
	}

	private void BtnB_Click(object sender, System.EventArgs e)
	{
		label1.Text = "Has pulsado la 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
  #10  
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
Cita:
Empezado por Caral Ver Mensaje
Hola
Viendo el código se parece mucho a Delphi, es interesante.
Cuando tenga dinero y tiempo me conseguiré el c++Builder, aunque sea solo por curiosidad.
Saludos
Que to sepa, Borland también tiene el C#.

Puedes descargar versiones gratuitas sobre C#, VB, C++ en su Web oficial aquí abajo y en español hasta la documentación y ayuda.

http://www.microsoft.com/express/download/

Ya me dirás si te gusta.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
Responder Con Cita
  #11  
Antiguo 26-09-2008
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Esta interesante, espero que sea legal.
Baje el c++ y puse la opción de Español.
Gracias por el dato, cuando tenga tiempo lo instalare y le daré un vistazo.
Lo que me da curiosidad es el tamaño del archivo, se baja muy rápido, no se si vendrá completo?.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #12  
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
Ese archivo pequeño descubrirás que es un poco grande. Se hará el resto de la descarga que pueden ser más de 450 MB. Es totalmente legal.

También puedes más abajo descargar la versión DVD con todos los lenguajes.
__________________
http://electronica-pic.blogspot.com....n-arduino.html Manuales de electrónica general, PIC y Arduino.
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 21:10:04.


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