技术开发 频道

用键盘控制picture移动

 【IT168技术文档】用键盘控制picture移动

VB.NET code

 Public Class Form1

 Private pic As PictureBox

 Private center As New Point(10, 10)

 Private r As Integer = 10

 Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown

 Select Case e.KeyCode

 Case Keys.Up

 If center.Y > r Then center.Y -= 1 Else Return

 Case Keys.Down

 If center.Y < pic.Height - r Then center.Y += 1 Else Return

 Case Keys.Left

 If center.X > r Then center.X -= 1 Else Return

 Case Keys.Right

 If center.X < pic.Width - r Then center.X += 1 Else Return

 Case Else

 Return

 End Select

 pic.Refresh()

 End Sub

 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

 pic = New PictureBox With {.Dock = DockStyle.Fill, .BorderStyle = BorderStyle.FixedSingle}

 AddHandler pic.Paint, AddressOf pic_Paint

 Me.Controls.Add(pic)

 End Sub

 Private Sub pic_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs)

 e.Graphics.Clear(Color.Black)

 e.Graphics.SmoothingMode = Drawing2D.SmoothingMode.HighQuality

 e.Graphics.DrawEllipse(Pens.Red, New Rectangle(center.X - r, center.Y - r, r * 2, r * 2))

 End Sub

 End Class

 C# code

 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

 {

 private PictureBox pic;

 private Point center = new Point(10, 10);

 private int r = 10;

 public Form1()

 {

 InitializeComponent();

 }

 private void Form1_Load(object sender, EventArgs e)

 {

 pic = new PictureBox { Dock = DockStyle.Fill, BorderStyle = BorderStyle.FixedSingle };

 pic.Paint += pic_Paint;

 this.Controls.Add(pic);

 }

 private void Form1_KeyDown(object sender, KeyEventArgs e)

 {

 switch (e.KeyCode)

 {

 case Keys.Up:

 if (center.Y > r) center.Y -= 1; else return;

 break;

 case Keys.Down:

 if (center.Y < pic.Height - r) center.Y += 1; else return;

 break;

 case Keys.Left:

 if (center.X > r) center.X -= 1; else return;

 break;

 case Keys.Right:

 if (center.X < pic.Width - r) center.X += 1; else return;

 break;

 default:

 return;

 }

 pic.Refresh();

 }

 private void pic_Paint(object sender, System.Windows.Forms.PaintEventArgs e)

 {

 e.Graphics.Clear(Color.Black);

 e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

 e.Graphics.DrawEllipse(Pens.Red, new Rectangle(center.X - r, center.Y - r, r * 2, r * 2));

 }

 }

 }

 
 

0
相关文章