Bri*_*rij 4 .net c# events winforms
在Windows窗体中,当UserControl或Form第一次变为可见时,将触发Load事件.
http://msdn.microsoft.com/en-us/library/system.windows.forms.usercontrol.load.aspx
对于像Checkbox,TextBox,Label这样的控件有没有这样的事件?
不可以.您可以使用HandleCreated事件,在创建控件的本机窗口时会触发它.在类构造函数运行后,您可以依赖的第一个事件.当父对象将控件添加到其Controls集合并且控件变为可见时,将触发它.
但请注意,此事件可以多次触发.当重新分配某些属性时,可以重新创建控件,这种类型需要使用新样式标志调用本机CreateWindowEx()函数.所以你至少需要随身携带一个跟踪这个的bool旗帜.
另请注意,在创建本机窗口后设置控件的属性效率非常低.所有Winforms控件都设计为允许在创建本机窗口之前设置属性.无论你生成什么代码几乎肯定应该使用类构造函数.任何一个派生控件本身.或者在父代码中,就像InitializeComponent()对表单或用户控件一样.
现有的Load事件也是如此.由于Load事件非常重要的VB6遗留,它往往被过度使用.但是在Winforms中,只需要依赖于控件或表单的最终位置和大小的代码.由于形式缩放,这可能与设计属性不同.任何其他代码都属于构造函数.