Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何添加表单加载事件(当前不工作)_C#_Winforms - Fatal编程技术网

C# 如何添加表单加载事件(当前不工作)

C# 如何添加表单加载事件(当前不工作),c#,winforms,C#,Winforms,我有一个Windows窗体,我试图在窗体加载时显示用户控件。不幸的是,它没有显示任何东西。我做错了什么?请参阅下面的代码: AdministrationView wel = new AdministrationView(); public ProgramViwer() { InitializeComponent(); } private void ProgramViwer_Load(object sender, System.EventArgs e) { formPanel.

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

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


private void ProgramViwer_Load(object sender, System.EventArgs e)
{
    formPanel.Controls.Clear();
    formPanel.Controls.Add(wel);
}
请注意,我根据本文所读内容添加了加载事件:


有三种方法可以做到这一点-从表单设计器中选择表单,在通常看到属性列表的地方,上面应该有一个小闪电符号-这将显示表单的所有事件。在列表中找到表单加载事件,您应该能够从下拉列表中选择
ProgramViwer\u load

第二种方法是通过编程实现的——在某个地方(可能是构造函数),您需要添加它,比如:
ProgramViwer.Load+=neweventhandler(ProgramViwer\u Load)


使用设计器的第三种方法(可能是最快的方法)——当您创建一个新表单时,在设计模式下双击它的中间部分。它将为您创建一个表单加载事件,将其挂钩,并将您带到事件处理程序代码。然后你只需加上两行就可以了

你得到了一半的答案!既然已经创建了事件处理程序,那么需要将其挂接到表单,以便在加载表单时实际调用它。您可以通过执行以下操作来实现这一点:

 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);
  }
}

由于某些原因,在“事件资源管理器”中加载时没有下拉选项。@DaveKelly下拉列表将列出您已经编写的所有兼容的事件处理程序-我怀疑您还没有创建一个。在这个问题上,OP已经写了一个。复制、粘贴和修改此问题中的一个,或者自己创建一个。我可以跳过此功能吗?我的另一个winform应用程序中没有它,当我运行它时,窗体只会出现在屏幕上。