C# WinForm初始化放在Load事件中与InitializeComponent()下面有何区别?

如题,我想了解下全局变量的定义、控件数据的加载、控件属性值的初始化应当放在哪里比较好?
我发现我设定listview的标题时,只能放在InitializeComponent()下面,放在form_load事件就不行,为什么?
加载的顺序我明白,我想了解他们的本质区别在哪里,比如Load和Active事件,Load是窗体初始化的时候只加载一次,而Active每次重绘一次界面就会触发一次。Load和Active有点类似于Delphi中的Create和Show事件,我刚从Delphi转型C#,很多基本的东西还不清楚,请大虾们不吝赐教。

InitializeComponent 这个方法为初始化窗体组件,加载窗体拖拽的控件, 全局变量的定义、控件数据的加载可以放在方法或事件中 比如 page_load 控件属性初始化 可以放在 窗体构造函数中,也可以放在 page_load中 。对于控件的代码操作,只能放在InitializeComponent 方法下,因为代码是按照上下顺序执行的,卸载InitializeComponent 上面 不会报错,但是InitializeComponent 方法 会让控件初始化成最初的状态 希望对你有帮助哈
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-07-11
搞清楚循序就行了 ,首先是构造函数,下面有个InitializeComponent()方法初始化各个组件,然后Form_load得在构造函数中声明
第2个回答  推荐于2016-11-03
lvwNPC.Columns.Add("  I D  ");
lvwNPC.Columns.Add("  X坐标  ");
lvwNPC.Columns.Add("  Y坐标  ");
lvwNPC.Columns.Add("  Z坐标 ");
lvwNPC.Columns.Add("      名称      ");
lvwNPC.Columns.Add("      其他      ");
lvwNPC.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);

lvwNPC是一个listview,请在Load中添加如上代码试试看。。。

追问

还是不行,我用的是View的Details模式,它的列标题显示不出来,除非Columns.Add写在InitializeComponent()下面才可以

追答

项目可以发我么?我也是detail模式,呵呵

本回答被提问者采纳
第3个回答  2013-07-11
先是Class的new,然后是initCom,最后才是Load