WPF窗口CLOSE后BUTTON的CLICK事件没销毁

qq_21386867 2015-03-25 10:35:25
WPF写的主程序,其中有个子窗口,用SHOWDIALOG开启。这个子窗口中有个BUTTON,window load时btn.click += new eventhanndler(btn-click), btn-click方法处理了一些事,简单地说累加一个计数器,不停地按BUTTON,计数器就向上计数,当计到10时,窗口关闭。
现在的问题是快速地不停地按BUTTON,比如一下子就按了12下,子窗口会关闭,但是再次打开这个子窗口时,还没按下BUTTON,计数器就直接跳到了2,相当于上次按的12下,最后的两下会留到重新打开子窗口时起作用。这是怎么回事?窗口关闭时btn.click事件没有被销毁吗?会留到下次打开窗口时起作用?
...全文
357 6 打赏 收藏 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
thisishexiao 2015-03-30
  • 打赏
  • 举报
回复
引用 5 楼 qq_21386867 的回复:
代码太长了。我这个BUTTON是在STACKPANEL里的,这会不会有影响。我点击一下,是不是STACKPANEL也会产生一个CLICK事件?
Button的Click事件的路由策略是:冒泡,所以如果把Button放在StackPanel里,其Click事件是可以传递到StackPanel的。 你要是不方便贴代码,那就仔细调试吧,断点设在改变计数器的值的代码上,看看第二次打开窗口时怎么会执行到那里。
qq_21386867 2015-03-26
  • 打赏
  • 举报
回复
代码太长了。我这个BUTTON是在STACKPANEL里的,这会不会有影响。我点击一下,是不是STACKPANEL也会产生一个CLICK事件?
thisishexiao 2015-03-26
  • 打赏
  • 举报
回复
每次ShowDialog的时候重置计数器不行吗?
  • 打赏
  • 举报
回复
子窗口会关闭 -》 子窗口会关闭 的时候 把 绑定事件给去掉。 使用 -= 的形式。试试
thisishexiao 2015-03-26
  • 打赏
  • 举报
回复
引用 3 楼 qq_21386867 的回复:
在窗口退出的CLOSING事件中,已写了btn.click-= , 写这个目的就是让方法与CLICK事件脱勾,但CLICK事件还是存在着啊。 下一次打开窗口时,LOAD事件中写了计数器清零,但是接着就响应了上次留下来的两次click。能不能打开窗口时清空CLICK事件呢?怎么清空?
贴点代码看看
qq_21386867 2015-03-26
  • 打赏
  • 举报
回复
在窗口退出的CLOSING事件中,已写了btn.click-= , 写这个目的就是让方法与CLICK事件脱勾,但CLICK事件还是存在着啊。 下一次打开窗口时,LOAD事件中写了计数器清零,但是接着就响应了上次留下来的两次click。能不能打开窗口时清空CLICK事件呢?怎么清空?

8,757

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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