zoukankan      html  css  js  c++  java
  • 关于win8开发的一点小总结

    我今天做画面的时候,发现了一点小问题。

    我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件。Checked事件里面有对另外一个TextBox的访问。

    这时候我运转程序,它会先走构造方法的InitializeComponent方法,然后就直接走到Checked事件,这时候可以看到TextBox是个null值,也就是说它还没被初期化。

    我的理解是InitializeComponent方法先初期化CheckBox,当初期化它的IsChecked属性时,先走到了Checked事件,然后跳出该事件再去初始化其他的控件。

    还有另外一种方式:

    我不在xaml文件里面设置IsChecked属性,当走完构造方法的InitializeComponent方法后,再去设置这个IsChecked属性为True。

    这个时候程序走完InitializeComponent方法,然后走到设置属性的地方之后,就会跳到Checked事件里面,这个时候TextBox是有值的,因为所有控件已经被初期化。

    接下来我再次打开这个画面,不去new,也就是不走InitializeComponent方法的情况下,无论哪种方式都不会再走到Checked事件里面。

    如果说第一种方式我理解(IsChecked属性放在xmal文件里,都不走InitializeComponent方法了,也就是说这个属性不被初期化的情况下,又怎么会走到Checked事件),第二种我就有点不懂了。

    第二种方式无论是第一次打开画面时,也是InitializeComponent方法已经走完了的情况下,才去设置的该属性,为什么它就能走到Checked事件,而第二次打开不走InitializeComponent方法的情况下,就走不进了呢?

  • 相关阅读:
    Python入门11 —— 基本数据类型的操作
    Win10安装7 —— 系统的优化
    Win10安装6 —— 系统的激活
    Win10安装5 —— 系统安装步骤
    Win10安装4 —— 通过BIOS进入PE
    Win10安装2 —— 版本的选择与下载
    Win10安装1 —— 引言与目录
    Win10安装3 —— U盘启动工具安装
    虚拟机 —— VMware Workstation15安装教程
    Python入门10 —— for循环
  • 原文地址:https://www.cnblogs.com/summer1987/p/3958581.html
Copyright © 2011-2022 走看看