读书人

在 form上可以实现在panel实现不已

发布时间: 2013-10-04 21:41:43 作者: rapoo

在 form上可以实现,在panel实现不了,为什么啊?
通过大家的帮助,我已经能够实现图形随着鼠标绘制。
但是问题又来了:

public partial class Form2 : Form
{
Point Form2_MouseMove;

public Form2()
{
InitializeComponent();
}

private void Form2_Paint(object sender, PaintEventArgs e)
{
Graphics dc = e.Graphics;
Pen blue = new Pen(Color.Blue, 3);
dc.DrawRectangle(blue, Form2_MouseMove.X, Form2_MouseMove.Y, 50, 50);
}

private void Form2_MouseMove_1(object sender, MouseEventArgs e)
{
Form2_MouseMove.X = e.X;
Form2_MouseMove.Y = e.Y;
this.Text = string.Format("鼠标位置:({0},{1})", Form2_MouseMove.X, Form2_MouseMove.Y);
this.Invalidate();
}



以上可以实现。
以下不能实现:
public partial class Form1 : Form
{
Point pt;

public Form1()
{
InitializeComponent();

}

private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics dc = e.Graphics;
Pen blue = new Pen(Color.Blue, 3);
dc.DrawRectangle(blue, pt.X, pt.Y, 50, 50);
}

private void panel1_MouseMove(object sender, MouseEventArgs e)
{
pt.X = e.X;
pt.Y = e.Y;
this.Text = string.Format("鼠标位置:({0},{1})", pt.X, pt.Y);
this.Invalidate();
}


}


是不是panel需要新的坐标体系和新的绘制方法?

谢谢!!
[解决办法]

public partial class Form1 : Form
{
Point pt;

public Form1()
{
InitializeComponent();

}

private void panel1_Paint(object sender, PaintEventArgs e)
{
Graphics dc = e.Graphics;
Pen blue = new Pen(Color.Blue, 3);
dc.DrawRectangle(blue, pt.X, pt.Y, 50, 50);
}

private void panel1_MouseMove(object sender, MouseEventArgs e)


{
pt.X = e.X;
pt.Y = e.Y;
this.Text = string.Format("鼠标位置:({0},{1})", pt.X, pt.Y);
panel1.Invalidate();
}


}

读书人网 >C#

热点推荐