C#事件延迟问题

KenChan 2008-11-02 03:51:45
我加载了一个PictureBox控制并且有Click事件,运行期间PictureBox会通过一个循环显示很多张图片,
我的设计是想它在显示完最后一张图片的时候才让Click事件发生,但是试了很多方法都不行,循环过程中只要点了鼠标,
这个动作就会在显示完最后一张图片的时候接着发生了,我的目的就是想在循环过程中点击的动作等于是无效的,不知道有什么方法,请高手们帮忙。
...全文
270 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
KenChan 2008-11-05
  • 打赏
  • 举报
回复
呵呵,谢谢各位给予支持和意见了
问题我已经自己用了别的办法解决了,上面好多朋友的意见跟我当初的想法是一样的,
以为加个标识就可以了,但系统似乎是在执行过程中有一个延迟,使得运行过程中用户点击的动作会被排队,等上一个动作完成了后系统会马上自动执行后面的动作。

后来我是把光标移到别的地方不让点同时隐藏,等运行完了后再移回来。
上面6楼的方法应该会比较好,不知道能不能用,有空会去试一下。
谢谢各位了
liuwei52 2008-11-02
  • 打赏
  • 举报
回复
六楼的方法比较好 建议楼主试试了 Hier
lovehongyun 2008-11-02
  • 打赏
  • 举报
回复
加个变量来标识一下就好了.
xiaoxinghappy 2008-11-02
  • 打赏
  • 举报
回复
显示图片的时候,enable=false,就不会发生click事件了,等显示完了以后,再把enable设置为true,你看怎么样
hztltgg 2008-11-02
  • 打赏
  • 举报
回复
你想让循环来生成动画,这个本事不合理的吧,循环的时候不能操作电脑了

我觉得放个定时器比较好吧,时间到切换图片,点击的时候判断也好,做个状态变量也好,都比较方便
ChargeForward 2008-11-02
  • 打赏
  • 举报
回复
我觉得应该加一个字段 初始值为0 记录用户单击次数 当图片滚动完后判断该字段是否大于0,如果大于零 说明用户点击过某张图片 那就接着做想要响应的事情喽 不知道这样子能不能符合楼主的需求?
ChargeForward 2008-11-02
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zswang 的回复:]
加一个字段标记一下是否在载入中

点击方法中判断这个标记即可。
[/Quote]
怎么判断?
王集鹄 2008-11-02
  • 打赏
  • 举报
回复
加一个字段标记一下是否在载入中

点击方法中判断这个标记即可。
gomoku 2008-11-02
  • 打赏
  • 举报
回复
添加一个状态变量,比如:



bool pictureBoxRolling; // 判断是否在演示中

void pictureBox_Clieck(object sender, EventArg e)
{
if( pictureBoxRolling == false )
{
pictureBoxRolling = true;
BeginAnimation();
}
}

void OnAnimationEnded(object sender, EventArg e)
{
pictureBoxRolling = false;
}

110,502

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧