SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => C# => Mensaje iniciado por: Meta en Lunes 15 de Septiembre de 2008, 08:16

Título: Leer los botones con teclado
Publicado por: Meta en Lunes 15 de Septiembre de 2008, 08:16
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?

(http://usuarios.lycos.es/reparaplaystation/cs/leer_boton.jpg)

 

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";

}

}

}

 


 

Un cordial saludos.




--------------------------------------------------------------------------------
La verdad no mancha los labios de quien la dice, sino la conciencia de quien la oculta.
Título: Re: Leer los botones con teclado
Publicado por: ProfesorX en Lunes 15 de Septiembre de 2008, 19:25
Pues mira, no se puede que yo sepa activar un boton con la ''A' solita o la 'B' solita, pero si puedes hacer que se active con alt-a, alt-b, o cualquier otra combinacion de letra con alt, siempre que sea unica, es decir, que no haya dos botones con la misma letra, en el mismo formulario, simplemente añades un ampersand '&' en la propiedad text de tu boton antes de la letra que quieres que se active, Por ejemplo, para tu boton1, deberias poner button1.Text = "Boton &A";

Espero que la informacion te sirva.

Saludos :hola:
Título: Re: Leer los botones con teclado
Publicado por: Meta en Lunes 15 de Septiembre de 2008, 19:43
Lo he probado pero luego tengo que pulsar enter y así es más incómodo que pulsar directamente con el ratón.

Aun así, gracias.
Título: Creo que no es tan complicado!!
Publicado por: mx_latino en Lunes 15 de Septiembre de 2008, 22:58
Si te entendi bien la pregunta no es tan compleja la cosa!!  ;)
Solo es cuestion de habilitar KeyPreview en el Form, via codigo o con el manejador de propiedades!!   :huh:

Código: Text
  1.   
  2.         String Texto = "Se a presionado -> ";
  3.  
  4.         public FormKeyPreview()
  5.         {
  6.             InitializeComponent();
  7.         }
  8.  
  9.         private void FormKeyPreview_Load(object sender, EventArgs e)
  10.         {
  11.             this.KeyPreview = true;
  12.         }
  13.  
  14.         private void FormKeyPreview_KeyPress(object sender, KeyPressEventArgs e)
  15.         {
  16.             switch (e.KeyChar)
  17.             {
  18.                 case (char)Keys.A:
  19.                     BtnA_Click(sender, new EventArgs());
  20.                     break;
  21.                 case (char)Keys.B:
  22.                     BtnB_Click(sender, new EventArgs());
  23.                     break;
  24.                 default:
  25.                     LblInfoPress.Text = Texto;
  26.                     break;
  27.             }
  28.         }
  29.  
  30.         private void BtnA_Click(object sender, EventArgs e)
  31.         {
  32.             LblInfoPress.Text = Texto + " A";
  33.         }
  34.  
  35.         private void BtnB_Click(object sender, EventArgs e)
  36.         {
  37.             LblInfoPress.Text = Texto + " B";
  38.         }
  39.  

Alli te dejo un pequeño ejemplo..
Saludos y suerte  :)
Título: Re: Creo que no es tan complicado!!
Publicado por: Meta en Martes 16 de Septiembre de 2008, 01:06
Cita de: "mx_latino"
Si te entendi bien la pregunta no es tan compleja la cosa!!  ;)
Solo es cuestion de habilitar KeyPreview en el Form, via codigo o con el manejador de propiedades!!   :huh:

Código: Text
  1.   
  2.         String Texto = "Se a presionado -> ";
  3.  
  4.         public FormKeyPreview()
  5.         {
  6.             InitializeComponent();
  7.         }
  8.  
  9.         private void FormKeyPreview_Load(object sender, EventArgs e)
  10.         {
  11.             this.KeyPreview = true;
  12.         }
  13.  
  14.         private void FormKeyPreview_KeyPress(object sender, KeyPressEventArgs e)
  15.         {
  16.             switch (e.KeyChar)
  17.             {
  18.                 case (char)Keys.A:
  19.                     BtnA_Click(sender, new EventArgs());
  20.                     break;
  21.                 case (char)Keys.B:
  22.                     BtnB_Click(sender, new EventArgs());
  23.                     break;
  24.                 default:
  25.                     LblInfoPress.Text = Texto;
  26.                     break;
  27.             }
  28.         }
  29.  
  30.         private void BtnA_Click(object sender, EventArgs e)
  31.         {
  32.             LblInfoPress.Text = Texto + " A";
  33.         }
  34.  
  35.         private void BtnB_Click(object sender, EventArgs e)
  36.         {
  37.             LblInfoPress.Text = Texto + " B";
  38.         }
  39.  

Alli te dejo un pequeño ejemplo..
Saludos y suerte  :)

Hola:

He probado la aplicación que hiciste. No funciona como digo. lo que digo es, que al pulsar la letra A o B del teclado, se ejecute las acciones de los botones A o B cuando haces click en el ratón.

Ejemplo:
Si pulso la letra A del teclado, se ejecutan las mismas acciones que al pinchar el botón A con el ratón. Es lo que quiero realizar.

Saludos.

Saludos y gracias.
Título: Re: Leer los botones con teclado
Publicado por: ProfesorX en Martes 16 de Septiembre de 2008, 02:35
Cita de: "Meta"
Lo he probado pero luego tengo que pulsar enter y así es más incómodo que pulsar directamente con el ratón.

Aun así, gracias.

Que raro, porque a mi me funciona sin pulsar enter, solo con alt+letra.

Estas seguro que modificaste la propiedad text en tiempo de diseño?
Título: Todo funciona bien!!
Publicado por: mx_latino en Martes 16 de Septiembre de 2008, 15:28
La aplicación hace justamente eso...  <_<

Da lo mismo dar click sobre los botones A o B que presionar las teclas que coresponden...
Tal vez si pruebas activando el teclado de mayusculas porq esta hecho para "A" no para "a"..  :no:

Saludos y Suerte...  B)
Título: Re: Todo funciona bien!!
Publicado por: Meta en Miércoles 17 de Septiembre de 2008, 17:14
Cita de: "mx_latino"
La aplicación hace justamente eso...  <_<

Da lo mismo dar click sobre los botones A o B que presionar las teclas que coresponden...
Tal vez si pruebas activando el teclado de mayusculas porq esta hecho para "A" no para "a"..  :no:

Saludos y Suerte...  B)

Hola mi muy distinguido amigo.

He dejado la mayúscula pulsada y ya funciona como yo quiero. Aún así, ¿hay alguna forma de funcionar sea mayúsculas o minúsculas sin tener que tocar la tecla Mayúscula?

Saludos.
Título: Re: Leer los botones con teclado
Publicado por: Meta en Jueves 18 de Septiembre de 2008, 05:03
Por cierto, ya el programa me funciona, pero no he logrado que me acepte la "A" y la "a".


http://es.youtube.com/watch?v=niWAbQ-HVnY (http://es.youtube.com/watch?v=niWAbQ-HVnY" onclick="window.open(this.href);return false;)

[youtube]http://es.youtube.com/watch?v=niWAbQ-HVnY[/youtube]
Título: Leer "A" y "a"
Publicado por: mx_latino en Jueves 18 de Septiembre de 2008, 15:41
Aqui le hice una pequeña modificación  ^_^
Revisa el código que no es nada complejo, pero sirve!!  :comp:

Saludos y suerte!!
Título: Re: Leer los botones con teclado
Publicado por: Meta en Viernes 19 de Septiembre de 2008, 06:44
Al compilar me da error.

Error   8   no se puede resolver el tipo 'DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v8.1, Version=8.1.2.0, Culture=neutral, PublicKeyToken=9b171c9fd64da1d1'   C:Documents and SettingsHunterEscritorioWAKeyPreview_ActualizadoWAKeyPreviewWAKeyPreviewPropertieslicenses.licx   1   WAKeyPreview
Título: Finalmente sin problemas!!
Publicado por: mx_latino en Viernes 19 de Septiembre de 2008, 15:20
Lo siento compadre esque suelo trabajar con componentes de   http://www.devexpress.com/  :P  y no me di cuenta que habia puesto los Label de eso tipo, pero alli te envio ya con los componentes normales de .Net.

Saludos y suerte!!  :D
Título: Re: Leer los botones con teclado
Publicado por: Meta en Viernes 19 de Septiembre de 2008, 20:05
Error   1   no se puede resolver el tipo 'DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v8.1, Version=8.1.2.0, Culture=neutral, PublicKeyToken=9b171c9fd64da1d1'   C:Documents and SettingsHunterEscritorioWAKeyPreview_FinalWAKeyPreviewWAKeyPreviewPropertieslicenses.licx   1   WAKeyPreview
Título: Re: Leer los botones con teclado
Publicado por: mx_latino en Lunes 22 de Septiembre de 2008, 15:29
Cita de: "Meta"
Error   1   no se puede resolver el tipo 'DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v8.1, Version=8.1.2.0, Culture=neutral, PublicKeyToken=9b171c9fd64da1d1'   C:Documents and SettingsHunterEscritorioWAKeyPreview_FinalWAKeyPreviewWAKeyPreviewPropertieslicenses.licx   1   WAKeyPreview

Que raro pero si ya le he quitado todo ese tipo de librerias!!  :huh:

Prueba nuevamente...   <_<

Sino almenos fijate en el codigo y trata de aplicarlo en un form tuyo..
Título: Re: Leer los botones con teclado
Publicado por: Meta en Martes 23 de Septiembre de 2008, 06:14
Cita de: "mx_latino"
Cita de: "Meta"
Error   1   no se puede resolver el tipo 'DevExpress.XtraEditors.LabelControl, DevExpress.XtraEditors.v8.1, Version=8.1.2.0, Culture=neutral, PublicKeyToken=9b171c9fd64da1d1'   C:Documents and SettingsHunterEscritorioWAKeyPreview_FinalWAKeyPreviewWAKeyPreviewPropertieslicenses.licx   1   WAKeyPreview

Que raro pero si ya le he quitado todo ese tipo de librerias!!  :huh:

Prueba nuevamente...   <_<

Sino almenos fijate en el codigo y trata de aplicarlo en un form tuyo..

Hola:

Ahora funciona a la perfección, voy a examinarlo paso a paso.

Un cordial saludos.
Título: Re: Leer los botones con teclado
Publicado por: Meta en Martes 14 de Octubre de 2008, 07:15
Hola de nuevo:

He vuelto a probar el código , sólo he hecho un cambio, por ejemplo:
Cambiar la letra "l" minúscula que en hexadecimal es 6C, y desde que ponga algo que contenga letra aparece este error.

Error   1   Error sintáctico, se esperaba ':'   C:Documents and SettingsHunterEscritorioWAKeyPreview_RaroWAKeyPreviewWAKeyPreviewFormKeyPreview.cs   59   23   WAKeyPreview

¿Hay alguna solución?

Un cordial saludos.