c# 线程 能控制paint事件的触发吗,比如在单击事件后才执行paint事件,新手求教,不胜感激各位有心探索者。

能人为控制paint事件执行,才能让程序更加灵活,如果线程不行,能有有过类似成功的实例不?... 能人为控制paint事件执行,才能让程序更加灵活,如果线程不行,能有有过类似成功的实例不? 展开
 我来答
风之味MyLi
2012-07-02 · 超过13用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:31.7万
展开全部
如果不用到参数的情况下,在单击事件里面,调用paint事件就可以了。
更多追问追答
追问
您好前辈,谢谢您的提醒,可是我试过了,paint事件的触发是在窗体登陆,最小化后再还原等情况下的,我一运行窗体picturebox上的图像就画出来了,我想等点击按钮后才开始绘制图像,点击按钮前不绘图。就算单击事件里面能够调用paint事件,也不是预计的效果。之所以我用paint来绘图,是因为paint绘图到控件上能够保存并转换为bitmap。希望您再给我指点迷津。
追答
哦,可以在后台定义一个成员变量,可以是bool值,先初始为false。paint事件内的代码,先判断这个变量如果是false的话,就不执行了。当点击事件后,改变该值为true,然后paint事件便可顺利执行下去了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
善小星tS
2012-07-02 · 超过33用户采纳过TA的回答
知道答主
回答量:293
采纳率:0%
帮助的人:92.7万
展开全部
那就把该事件放在单击事件中执行就行了!
追问
谢谢您的回答,可是我试过了,单击事件里不能嵌套paint事件。
追答
那就用线程设定时间控制它可以定时执行paint
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
梅2江
2012-07-02 · 超过53用户采纳过TA的回答
知道小有建树答主
回答量:153
采纳率:100%
帮助的人:85.4万
展开全部
你要重绘控件??使用去看跨线程调用知识。。。事件当然也可以的
追问
您好前辈,谢谢您的提醒,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();
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式