posts - 21,  comments - 60,  trackbacks - 3
        最早接触.Net是通过VB,有什么初始化全在Form.Load事件里进行。再之后转而用C#,开始时也是在Form.Load事件里进行初始化,后来感觉构造函数里初始化的效果也一样,为了代码简练,就很少再用Form.Load事件了,直到昨天晚上。
        最近做东西太多的需要动态生成控件,以及控件的定位,为了方便我都是先把控件全部添加到窗体,然后再根据控件的Visible属性来确定控件位置。而这个过程我是在窗体类的构造函数里进行的,运行起来根本就不是我想象的!Why?做了个测试:
在窗体类的构造函数里加入如下语句
1foreach(Control ctrl in this.Controls)
2{
3    Console.WriteLine(ctrl.Visible);
4}
发现输出的全是False!一直不明白,以为是.net的Bug,就又加了个CheckBox控件来判断,这次是用的Form.Load事件:
this.checkBox1.Checked = this.textBox1.Visible,没有问题!确实是选中的!把这句话再移到Form的构造函数,没有选中!
看来控件的属性真正起作用是在Form.Load事件中进行的。
窗体类的构造函数和Form.Load事件效果不一样!
posted on 2005-07-18 21:24 山伟 阅读(1477) 评论(1) 编辑 收藏