Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Alejovsq

#1
Es exactamente el funcionamiento que deseaba!!

No es para un trabajo de clase. Soy principiante y son ideas propias para ir practicando lo que ya he aprendido del lenguaje.

Tu respuesta ha sido excelente, tengo muchas cosas que estudiar y aprender de ella. Investigaré sobre la clase/componente BackgroundWorker.

Muchas gracias, Elektro!!!
#2
Empecé nuevamente desde cero, quité el ¨Timer¨para ir resolviendo el problema de a poco.

Así va quedando el nuevo código...

Código (csharp) [Seleccionar]

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void btnIniciar_Click(object sender, EventArgs e)
        {
            letra = GeneradorLetra();
            lblEtiqueta.Text = letra;

            /*
             * Como puedo llamar al metodo Form1_Keypress(object, KeyPressEventArgs) desde aqui??
             * Me pide dos argumentos y no se como pasarlos desde este punto.
             */
        }

        private string GeneradorLetra()
        {
            Random aleatorio = new Random();
            int i = aleatorio.Next(0, 7);
            string[] seleccion = { "A", "B", "C", "D", "E", "F", "G" };

            return seleccion[i];
        }

        private void Form1_KeyPress(object sender, KeyPressEventArgs e) //Aun sin funcionar
        {
           
            string teclaOprimida = e.KeyChar.ToString();

            if (letra == teclaOprimida)
            {
                lblEtiqueta.ForeColor = Color.Green;
            }
            else
            {
                lblEtiqueta.ForeColor = Color.Red;
            }
        }

        string letra;
    }


Me gustaría llamar al método Form1_KeyPress() desde el método btnIniciar_Click(), no entiendo como podría pasar los argumentos (creo que se les denomina de ¨Control¨) desde ese punto.  Supongo que la solución sería parecida para implementar los métodos del Timer.
#3
Saludos, amigos!

Estoy intentando realizar un pequeño programa que genera letras aleatorias y con el teclado debo presionar las teclas correspondientes. Esto debe hacerse en un rango de tres (3) segundos, si no, la letra cambiará por otra.

Si la tecla presionada es igual a la letra generada, el texto debe cambiar a color verde, de lo contrario debe cambiar a color rojo.

El problema es que no se capturar muy bien los eventos del teclado para compararlos.


public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

//tmr.Temporizador.Start();

         private void tmrTemporizador_Tick(object sender, EventArgs e)
        {
            string letra= GeneradorLetra();
            lblEtiqueta.Text = letra;   //---------- Cómo llamar un evento de teclado desde aquí, para luego compararlo?
           
        }

        private string GeneradorLetra()
        {
            Random numero = new Random();
            int i = numero.Next(0, 7);

            string[] cadenaDeLetras = { "A", "B", "C", "D", "E", "F", "G" };

            return cadenaDeLetras[i];
        }
    }
}