处理页面生命周期事件

时间:2016-07-09 13:29:19

标签: c# asp.net .net webforms

我是一名VB.NET开发人员,试图在业余时间学习C#。请参阅以下代码:

 public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;//event handler code
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string test = "got here";
        }

    }

这是一个Windows窗体应用程序。如果我将事件处理程序代码添加到构造函数,则Form1_Load处理load事件。

现在请参阅下面的Web窗体应用程序:

public partial class _Default : Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string s = "got here";
        }
    }

在没有任何事件处理程序代码的情况下触发Page_Load?

我的问题是:Page Life Cycle事件是否自动连接到功能名称,例如Page_Load自动处理c#ASP.NET中的页面加载?为什么这不适用于Windows窗体?你在哪里把事件处理程序代码放在Windows窗体中? .designer?

2 个答案:

答案 0 :(得分:1)

在Asp.Net中,您可以设置AutoEventWireup值。请查看此文章https://support.microsoft.com/en-us/kb/324151

但是,当我需要处理事件时,对我来说最简单的方法是转到aspx源视图,找到 runatserver 控件并在那里指定我的处理程序。例如:

<asp:TextBox ID="txtCustomer" runat="server" />

当您键入“on ...”时,将显示事件列表(事件由光线图标标识),选择OnLoad和Create。

<asp:TextBox ID="txtCustomer" OnLoad="txtCustomer_Load" runat="server" />

现在转到你的cs代码隐藏文件,你会看到在那里创建了默认处理程序。

protected void txtCustomer_Load(object sender, EventArgs e)
{

}

另一种选择是进入设计视图,右键单击控件并转到属性。单击光线图标并添加处理程序。

答案 1 :(得分:0)

Winform不会像Asp.Net那样自动触发事件,因为winform没有页面生命周期。 要在winform中处理事件,请在设计模式下选择组件。查看右侧面板,您将看到事件选项卡。这里有很多活动。双击处理它。 enter image description here