读书人

C#中鼠标移动画图有关问题

发布时间: 2012-03-22 17:43:57 作者: rapoo

C#中鼠标移动画图问题
给位大侠,我想在C#中通过鼠标移动时label控件能跟着鼠标位置而动,并画出图来为什么不可以实现,这是我的程序,请各位大侠帮忙,谢谢了。
private void ZhuKong_MouseMove(object sender, MouseEventArgs e)
{
Graphics g = 三维图.CreateGraphics();
Pen myPen = new Pen(Color.Black);
Pen myPen1 = new Pen(Color.SteelBlue);
Pen myPen2 = new Pen(Color.Green);
myPen.Width = 1;
myPen1.Width = 1;
myPen2.Width = 1;
int r = (三维图.Width) / 60;
int h = (三维图.Height) / 40;
int x1=label8.Location.X;
int y1=label8.Location.Y;
Point p = new Point(e.X, e.Y);
label8.Location = p;
X坐标.Text = e.X.ToString();
Y坐标.Text = e.Y.ToString();
Z坐标.Text = e.Y.ToString();
g.DrawLine(myPen1, r * 7, h * 3, x1,y1);
g.DrawLine(myPen1, r * 5, h * 20, x1, y1);
g.DrawLine(myPen1, r * 57, h * 3, x1, y1);
g.DrawLine(myPen1, r * 55, h * 20, x1, y1);
g.DrawLine(myPen2, r * 7, h * 17, r * 5, h * 35);
g.DrawLine(myPen2, r * 7, h * 17, r * 57, h * 17);
g.DrawLine(myPen2, r * 57, h * 17, r * 55, h * 35);
g.DrawLine(myPen2, r * 5, h * 35, r * 55, h * 35);//画地面线
g.DrawLine(myPen, r * 7, h * 3, r * 7, h * 17);
g.DrawLine(myPen, r * 7, h * 3, label8.Location.X, label8.Location.Y);
g.DrawLine(myPen, r * 5, h * 20, label8.Location.X, label8.Location.Y);
g.DrawLine(myPen, r * 57, h * 3, label8.Location.X, label8.Location.Y);
g.DrawLine(myPen, r * 55, h * 20, label8.Location.X, label8.Location.Y);

[解决办法]
Graphics g = 三维图.CreateGraphics();

把这句话放到外面。。

private Graphics g = 三维图.CreateGraphics();

[解决办法]
这些代码都应该放在OnPaint里
在Move里面只是改变数值然后Invalidate

读书人网 >C#

热点推荐