From

codx 2014-12-09 03:54:59
using System;
using System.Drawing;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}


Rectangle re = new Rectangle(0, 0, 20, 20); //小球初始的坐标和大小
int setpX = 5;
int setpY = 5;


private void timer1_Tick(object sender, EventArgs e)
{
Show(this);
}



public void Show(Control ctl)
{


Graphics g = ctl.CreateGraphics(); //这是要绘图的控件的Graphics

BufferedGraphicsContext dc = new BufferedGraphicsContext();

BufferedGraphics bg = dc.Allocate(g, new Rectangle(new Point(0,

0), ctl.Size));//根据控件的Graphics初始缓冲Graphics

Graphics gBuff = bg.Graphics; //这是缓冲Graphics


///以下是绘图代码
re.X += setpX;
re.Y += setpY;

if (re.X >= ctl.Width)
{
setpX = -setpX;
}
if (re.X <= 0)
{
setpX = -setpX;
}

if (re.Y >= ctl.Height)
{

setpY = -setpY;
}
if (re.Y <= 0)
{
setpY = Math.Abs(setpY);
}

SolidBrush sb = new SolidBrush(Color.Red);
gBuff.FillEllipse(sb,re);
gBuff.DrawEllipse(new Pen(Color.Blue), 0, 0, re.X - 2, re.Y -

2);
gBuff.DrawEllipse(new Pen(Color.Yellow), 0, 0, re.X - 4, re.Y

- 4);
gBuff.DrawEllipse(new Pen(Color.Tan), 0, 0, re.X - 6, re.Y -

6);

//把缓冲Graphics的图一次性绘制到控件的Graphics
bg.Render(g);


sb.Dispose();
bg.Dispose();
g.Dispose();

}
}
}
...全文
382 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Justin-Liu 2014-12-09
  • 打赏
  • 举报
回复
问题是什么。。。

2,684

社区成员

发帖
与我相关
我的任务
社区描述
企业开发 ERP/CRM
社区管理员
  • ERP/CRM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧