none
一个困惑多年的问题 RRS feed

  • 问题

  • 不论是WPF中,还是asp.net中,还是Windows Form中,
    Window_Loaded事件(asp.net中可能名称不同),都会执行两次,微软为什么这样设计呢?还是我写的代码有问题?当然一般情况下,执行两次并不会影响程序运行,但是感觉非常不爽,所以我一般都在类的初始化事件中进行这类处理,但是,初始化事件的确与Window_Loaded事件在特殊情况下是非常不同的,请达人指点一二,道明其中原由。

    2010年6月24日 7:51

答案

  • 当控件被添加到容器中,则会触发onload事件,remove后则触发unload

    如tabcontrol,点击其他tabitem,内部控件的onload事件则一直不断触发,因为其内部控件不停的add和remove

    2010年6月25日 1:07

全部回复

  • 当控件被添加到容器中,则会触发onload事件,remove后则触发unload

    如tabcontrol,点击其他tabitem,内部控件的onload事件则一直不断触发,因为其内部控件不停的add和remove

    2010年6月25日 1:07
  • 真的如此吗?我从没有发现类似情况,刚刚测试了一下WPF和WinForm,都没有出现执行两次的情况。能否把代码贴上来看一下?
    Tech Blog: http://gildor.cnblogs.com
    2010年6月28日 13:03
  • add的时候会触发一次,并不是执行两次,因为如tabcontrol等控件触发了两次,误解成触发两次了

    早上还在看Gildor Wang的文章,想必也是做wpf/sliverlight应用的吧


    2010年6月29日 4:39
  • add的时候会触发一次,并不是执行两次,因为如tabcontrol等控件触发了两次,误解成触发两次了

    早上还在看Gildor Wang的文章,想必也是做wpf/sliverlight应用的吧


    原来如此。

    呵呵,确实在做,不过就知识的系统性和整理工作明显就远远不及了:)


    Tech Blog: http://gildor.cnblogs.com
    2010年6月29日 8:40