none
como faço para mover uma picturebox usando o teclado ? RRS feed

  • Pergunta

  •  private void hello(object sender, KeyEventArgs e)
            {
                if (e.Key == Key.A)
                   prot_png. = new Point(x: Left, y: Top)

                      "" eu não consigo escrever prot_png.location nem prot_png.left ""                   

                               

    {

           
    quinta-feira, 13 de abril de 2017 17:56

Respostas

  • Boa tarde!

    Segue exemplo de código abaixo:

    //Atributos
    private int pVelocidade = 0;
    
    //Eventos
    private void btnOk_Click(object sender, EventArgs e)
            {
                if (!int.TryParse(textBox1.Text, out pVelocidade))
                    MessageBox.Show("Velocidade inválida!");
            }
    
    private void Form3_KeyDown(object sender, KeyEventArgs e)
            {
                if (pVelocidade != 0)
                {
                    if (rdbWASD.Checked)
                    {
                        #region WASD
    
                        switch (e.KeyCode)
                        {
                            case Keys.W:
                                pictureBox1.Top -= pVelocidade;
                                break;
    
                            case Keys.S:
                                pictureBox1.Top += pVelocidade;
                                break;
    
                            case Keys.D:
                                pictureBox1.Left += pVelocidade;
                                break;
    
                            case Keys.A:
                                pictureBox1.Left -= pVelocidade;
                                break;
                        }
    
                        #endregion
                    }
                    else if (rdbNumerico.Checked)
                    {
                        #region Teclado numérico
    
                        switch (e.KeyCode)
                        {
                            case Keys.NumPad8:
                                pictureBox1.Top -= pVelocidade;
                                break;
    
                            case Keys.NumPad2:
                                pictureBox1.Top += pVelocidade;
                                break;
    
                            case Keys.NumPad4:
                                pictureBox1.Left -= pVelocidade;
                                break;
    
                            case Keys.NumPad6:
                                pictureBox1.Left += pVelocidade;
                                break;
                        }
    
                        #endregion
                    }
                }
            }

    Print da tela que eu fiz, utilizei RadioButton, para que o usuário possa escolher como utilizar (WASD, ou teclado numérico), e um textbox também, para definir a velocidade que o pictureBox vai se locomover na tela.

    Qualquer dúvida, estou a disposição.

    att.

    Felipe

    quinta-feira, 13 de abril de 2017 19:50