VB.net 如何画窗体??
VB.NET似乎只有Form的Paint事件可以绘制窗体图形;但是我想实现在单击窗体的时候才绘制图形,发现MouseClick中的E变元,与Paint事件中的E变元是不同...
VB.NET 似乎只有 Form 的 Paint 事件可以绘制窗体图形;但是我想实现在单击窗体的时候才绘制图形,发现 MouseClick 中的 E 变元,与Paint 事件中的 E 变元是不同的,二者不能实现相同的功能,请问这要怎么实现??
多谢二位,不过还有个问题,就是比如说在 MouseClick 事件中去调用Form 的 Paint 事件,那么参数要如何传递??这两个 E 变元是不同类型,如果传递的话会是错误的,例如:
Call Form_Paint(Sender,E )
这样写是不允许的,这要怎么传?? 展开
多谢二位,不过还有个问题,就是比如说在 MouseClick 事件中去调用Form 的 Paint 事件,那么参数要如何传递??这两个 E 变元是不同类型,如果传递的话会是错误的,例如:
Call Form_Paint(Sender,E )
这样写是不允许的,这要怎么传?? 展开
2个回答
展开全部
绘制和数据分离,就是说,Paint 事件永远是用来绘制的,具体绘制什么东西(也就是绘制的数据,唤埋如半径为4的圆),有数据决定,MouseClick 可和则蚂以更改一些参数,然后由Paint 绘制:
MouseClick 事件里,重绘窗体,即:
int r = 0, x = 0, y = 0;
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
r = 10;
x = e.X;
y = e.Y;
this.Invalidate();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
// 绘制一个r半径圆
e.Graphics.DrawEllipse(new Pen(Color.Red), x, y, r, r);
}
补充:
在 MouseClick 事件中去调用Form 的 Paint 事件,那么参数要如何传盯庆递?
参数是个全局变量,类似上面的r、x、y等,不是由e传过去的,
上述代码是c#的,vb.net和c#一样,都是用的fcl类库,你改一下就可以了,
MouseClick 事件里,重绘窗体,即:
int r = 0, x = 0, y = 0;
private void Form1_MouseClick(object sender, MouseEventArgs e)
{
r = 10;
x = e.X;
y = e.Y;
this.Invalidate();
}
private void Form1_Paint(object sender, PaintEventArgs e)
{
// 绘制一个r半径圆
e.Graphics.DrawEllipse(new Pen(Color.Red), x, y, r, r);
}
补充:
在 MouseClick 事件中去调用Form 的 Paint 事件,那么参数要如何传盯庆递?
参数是个全局变量,类似上面的r、x、y等,不是由e传过去的,
上述代码是c#的,vb.net和c#一样,都是用的fcl类库,你改一下就可以了,
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询