Pozycja się nie zmienia

0
using 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 WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.FormBorderStyle = FormBorderStyle.None;
            this.TopMost = true;
            this.Bounds = Screen.PrimaryScreen.Bounds;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

        private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.W)
            {
                kwadracik.Location = new Point(kwadracik.Location.X + 10, kwadracik.Location.Y + 10);
            }
        }

    }
}
 

Dlaczego mimo wciskania "W" pozycja kwadracika się nie zmienia. (jako kwadracik można wziąć cokolwiek np. button)

1

Pozycja kwadracika się nie zmienia, czy w ogóle ciało ifa się nie wykonuje?
Ustawiłeś KeyPreview na true?

0

Nawet jak przed tym ifem dam KeyPreview=true to nic się nie dzieje.

0

Bo to się ustawia w designerze dla formatki, ewentualnie w konstuktorze. Na pewno nie w zdarzeniu wciśnięcia przycisku, które się nawet nie wykona bez tego ustawienia.

0

Polecam skorzystać z Timera i tam przesuwać obiekt.

 bool left, right;

private void tmr_Tick(object sender, EventArgs e)
        {
            // lewo / prawo
            if (right == true) player.Left += 5;
            if (left == true) player.Location = new Point(player.Location.X - 5, player.Location.Y);
        }
private void Form1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Escape) this.Close();
            if (e.KeyCode == Keys.Right) right = true;
            if (e.KeyCode == Keys.Left) left = true;
}
        private void Form1_KeyUp(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Right) right = false;
            if (e.KeyCode == Keys.Left) left = false;            
        }
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1