12

加载表单时,代码需要执行诸如设置数据网格、组合框、设置标题等操作。我倾向于始终使用加载事件而不是新的(构造函数)。有没有什么指南最适合哪些活动?

4

3 回答 3

3

对 InitializeComponent 的调用会自动插入到表单/页面的构造函数中。InitializeComponent 是自动生成的方法

  • 在您的 winform / XAML 页面上创建各种 UI 元素
  • 使用存储在资源文件中的值初始化它们的属性

因此,与 UI 安排/修改相关的任何内容都应此调用之后进行。当您在 Form.OnLoad 的覆盖中执行此操作时,您可以确保 UI 已准备就绪(已调用 InitializeComponent)......所以我会投票支持 UI 的 OnLoad。
创建非 UI 成员,构造函数将是我首先要看的地方。

于 2008-11-05T06:38:53.973 回答
2

Bear in mind that anything in the constructor of a form will be created/executed at that forms creation. i.e. at:

Form frm = new Form();

Whereas anything in the Load event will occur only when the form is shown i.e. frm.Show();

于 2008-11-05T09:46:38.120 回答
1

基本上,您希望您的构造函数尽可能轻巧。我尝试将大部分内容放在 Load 事件处理程序中,因为 UI 元素已经创建并且此时可以使用。但是,我通常在构造函数中实例化类对象等,因为它实际上是构造对象的一部分。有时你不能把东西放在一个地方或另一个地方,但在你可以的时候,你应该把它们放在看起来最合适的地方。

于 2008-11-05T05:43:32.557 回答