窗体类的构造函数和Form.Load事件效果一样吗?

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

转载于:https://www.cnblogs.com/srw962/archive/2005/07/18/195430.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值