110,538
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace WindowsApplication247
{
public partial class Form1 : Form
{
PictureBox PB = new PictureBox();
public Form1()
{
InitializeComponent();
PB.Parent = this;
PB.BackColor = Color.Black;
this.KeyDown += new KeyEventHandler(Form1_KeyDown);
}
void Form1_KeyDown(object sender, KeyEventArgs e)
{
Bitmap Bmp = new Bitmap(PB.ClientRectangle.Width, PB.ClientRectangle.Height);
using (Graphics G = Graphics.FromImage(Bmp))
{
G.Clear(Color.Black);
switch (e.KeyCode)
{
case Keys.Up: G.DrawArc(Pens.Red, new Rectangle(0, 0, 50, 50), 0, 300); break;
case Keys.Down: G.DrawEllipse(Pens.Green, new Rectangle(0, 0, 50, 50)); break;
case Keys.Left: G.DrawLine(Pens.Blue, new Point(0, 0), new Point(50, 50)); break;
case Keys.Right: G.DrawRectangle(Pens.Yellow, new Rectangle(0, 0, 50, 50)); break;
}
}
PB.Image = Bmp;
GC.Collect();
}
}
}
public partial class NewPanel : UserControl
{
int Oldx, Oldy, Newx, Newy;
public NewPanel()
{
InitializeComponent();
Oldx = this.Width / 2;
Oldy = this.Height / 2;
Newx = Oldx;
Newy = Oldy;
}
private void NewPanel_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawRectangle(new Pen(Color.Green), new Rectangle(0, 0, this.Width - 1, this.Height - 1));
g.DrawLine(new Pen(Color.Red, 20), new Point(Oldx, Oldy), new Point(Newx, Newy));
Oldx = Newx;
Oldy = Newy;
}
private void NewPanel_KeyUp(object sender, KeyEventArgs e)
{
bool bDraw = false;
if (e.KeyCode == Keys.Left)
{
Newx = Oldx - 1;
bDraw = true;
}
else if (e.KeyCode == Keys.Right)
{
Newx = Oldx + 1;
bDraw = true;
}
else if (e.KeyCode == Keys.Up)
{
Newy = Oldy - 1;
bDraw = true;
}
else if (e.KeyCode == Keys.Down)
{
Newy = Oldy + 1;
bDraw = true;
}
if(bDraw == true) this.Invalidate();
}
}