如何添加表单加载事件(当前不起作用)

use*_*502 19 c# winforms

我有一个Windows窗体表单,我试图在表单加载时显示用户控件.不幸的是,它没有显示任何东西.我究竟做错了什么?请参阅以下代码:

AdministrationView wel = new AdministrationView();
public ProgramViwer()
{
    InitializeComponent();
}


private void ProgramViwer_Load(object sender, System.EventArgs e)
{
    formPanel.Controls.Clear();
    formPanel.Controls.Add(wel);
}
Run Code Online (Sandbox Code Playgroud)

请注意我根据我在本文中读到的内容添加了load事件:

http://msdn.microsoft.com/en-us/library/system.windows.forms.form.load.aspx

Bri*_*dge 50

有三种方法可以做到这一点 - 从表单设计器,选择表单,以及通常看到属性列表的位置,就在它上方应该有一个闪电符号 - 这将显示表单的所有事件.在列表中找到表单加载事件,您应该可以ProgramViwer_Load从下拉列表中选择.

第二种方法是以编程方式 - 某个地方(也许是构造函数)你需要添加它,例如: ProgramViwer.Load += new EventHandler(ProgramViwer_Load);

使用设计器的第三种方式(可能是最快的) - 当您创建新表单时,在设计模式中双击它的中间部分.它将为您创建一个Form加载事件,将其挂钩,然后转到事件处理程序代码.然后你可以添加你的两行,你很高兴去!

  • @DaveKelly下拉列表将列出您已经编写的所有兼容事件处理程序-我怀疑您尚未创建一个事件处理程序。在这个问题上,OP已经写了一个。复制粘贴并修改此问题中的一个,或者自己创建一个。 (2认同)

GET*_*Tah 15

你有一半的答案!现在您已经创建了事件处理程序,您需要将其挂钩到表单,以便在加载表单时实际调用它.您可以通过执行以下操作来实现此目的:

 public class ProgramViwer : Form{
  public ProgramViwer()
  {
       InitializeComponent();
       Load += new EventHandler(ProgramViwer_Load);
  }
  private void ProgramViwer_Load(object sender, System.EventArgs e)
  {
       formPanel.Controls.Clear();
       formPanel.Controls.Add(wel);
  }
}
Run Code Online (Sandbox Code Playgroud)