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 )

这样写是不允许的,这要怎么传??
展开
 我来答
百度网友dc91b32
2008-04-30 · TA获得超过5650个赞
知道大有可为答主
回答量:5653
采纳率:0%
帮助的人:0
展开全部
绘制和数据分离,就是说,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类库,你改一下就可以了,
depluin
2008-04-30 · TA获得超过3179个赞
知道大有可为答主
回答量:3378
采纳率:75%
帮助的人:2476万
展开全部
在MouseClick中命令Form调用OnPaint事件重新绘制一次不就行了...
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式