c# 线程 能控制paint事件的触发吗,比如在单击事件后才执行paint事件,新手求教,不胜感激各位有心探索者。
3个回答
展开全部
如果不用到参数的情况下,在单击事件里面,调用paint事件就可以了。
更多追问追答
追问
您好前辈,谢谢您的提醒,可是我试过了,paint事件的触发是在窗体登陆,最小化后再还原等情况下的,我一运行窗体picturebox上的图像就画出来了,我想等点击按钮后才开始绘制图像,点击按钮前不绘图。就算单击事件里面能够调用paint事件,也不是预计的效果。之所以我用paint来绘图,是因为paint绘图到控件上能够保存并转换为bitmap。希望您再给我指点迷津。
追答
哦,可以在后台定义一个成员变量,可以是bool值,先初始为false。paint事件内的代码,先判断这个变量如果是false的话,就不执行了。当点击事件后,改变该值为true,然后paint事件便可顺利执行下去了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那就把该事件放在单击事件中执行就行了!
追问
谢谢您的回答,可是我试过了,单击事件里不能嵌套paint事件。
追答
那就用线程设定时间控制它可以定时执行paint
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要重绘控件??使用去看跨线程调用知识。。。事件当然也可以的
追问
您好前辈,谢谢您的提醒,paint事件的触发是在窗体登陆,最小化后再还原等情况下的,我一运行窗体picturebox上的图像就画出来了,我想等点击按钮后才开始绘制图像,点击按钮前不绘图。就算单击事件里面能够调用paint事件,也不是预计的效果。学生想人为干预控制paint事件的触发,也就是在运行窗体不触发,而是点击按钮后触发,之所以用paint来绘图,是因为paint绘图到控件上能够保存并转换为bitmap。希望前辈给我指点迷津。
追答
点击后才在picturebox绘图是可以的啊。。你先写一个处理绘图的方法,你不用在paint事件写。据我知道paint事件是加载的时候就响应了。。不知道是不是这样的。但是我做的话是:
PictureBox mypicture ;
private void PaintGrid()
{
mypicture = new PictureBox();
mypicture.Size=new Size(width,height);
mypicture.Location = new Point(0,0);
mypicture.Parent =panel1;
//上边那一段是创建一个picturebox对象,就相当与你托一个picturebox控件到窗体上了。然后下边你就写你要画图的的方法;
//写你画图的代码,或者是加载图片也行。
然后
mypicture.Image=bl; //bl是你画好图的位图信息。这里是将画好的图显示到picturebox控件上。。
}
//这里一点击就显示了。
private void button1_Click(object sender, EventArgs e)
{
PaintGrid();
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询