Отрисовка по нажатию клавиши - C#
Формулировка задачи:
По нажатию клавиши нужно вывести на экран прямоугольник и двигать его вперёд пока он не достигнет границы формы. Проблема же в том он не хочет рисоваться вне события Paint
private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Space) { Bullet.FillRectangle(System.Drawing.Brushes.Green, 15, 70, 70, 100); } Refresh(); } private void Form1_Paint(object sender, PaintEventArgs e) { Bullet = CreateGraphics(); } переменная Bullet задана глобально public Graphics Bullet;
Решение задачи: «Отрисовка по нажатию клавиши»
textual
Листинг программы
int x, y, width=100, height=40; private void Form1_Load(object sender, EventArgs e) { x = this.Width / 2 - width / 2; //начальное положнеие y = this.Height / 2 - height / 2; //почти по центру формы } private void Form1_Paint(object sender, PaintEventArgs e) { e.Graphics.FillRectangle(Brushes.Green, new Rectangle(x, y, width, height)); //рисуем } private void Form1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyData == Keys.Up) y -= 5; //двигаем вверх if (e.KeyData == Keys.Down) y += 5; //виниз if (e.KeyData == Keys.Left) x -= 5; //влево if (e.KeyData == Keys.Right) x += 5; //вправо this.Invalidate(); //перерисовываем }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д