如何:在 Web 窗体应用程序中使用事件

Web 窗体应用程序中的一种常见情况是使用控件填充网页,然后根据用户单击的控件执行特定操作。 例如,当用户在网页中单击 System.Web.UI.WebControls.Button 控件时,该控件会引发一个事件。 通过处理该事件,应用程序可以针对该按钮单击操作执行适当的应用程序逻辑。

有关“Web 窗体”编程模型的信息,请参见 Web 窗体编程

处理网页上的按钮单击事件

  1. 创建一个具有 Button 控件的 Web 窗体页(ASP.NET 页)。

    <asp:Button id = "Button" Text = "Click Me" runat = server/>
    
  2. 定义一个与 Click 事件委托签名匹配的事件处理程序。 Click 事件将 EventHandler 类用于委托类型,将 EventArgs 类用于事件数据。

  3. 将 Button 元素中的 OnClick 特性设置为事件处理程序方法。

    <asp:Button
            id = "Button" OnClick = "Button_Click" Text = "Click Me" 
            runat = server/>
    
    注意注意

    Web 窗体应用程序开发人员可以按照所示以声明方式处理事件,而不必直接使用委托。ASP.NET 页框架生成创建 EventHandler 实例的代码,T:System.EventHandler 引用 Button_Click 并将此委托实例添加到 Button 实例的 Click 事件中。

示例

以下 Web 窗体页处理 ButtonClick 事件以改变 TextBox 的背景色。

安全说明安全说明

此示例有一个接受用户输入的文本框,这是一个潜在的安全威胁。默认情况下,ASP.NET 网页验证用户输入是否不包含脚本或 HTML 元素。有关更多信息,请参见脚本侵入概述

<html>
   <script language="VB" runat=server> 
      Private Sub Button_Click(sender As Object, e As EventArgs)
         Box.BackColor = System.Drawing.Color.LightGreen
      End Sub
   </script>
   <body> 
      <form method="POST" action="Events.aspx" runat=server>   
          Click the button, and notice the color of the text box.<br><br>
         <asp:TextBox 
         id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>             
         <br><br>       
        <asp:Button
        id = "Button" OnClick = "Button_Click" Text = "Click Me" 
        runat = server/>         
      </form>
   </body>
</html>
<html>
   <script language="C#" runat=server> 
      private void Button_Click(object sender, EventArgs e){
         Box.BackColor = System.Drawing.Color.LightGreen;
               }
   </script>
   <body> 
      <form method="POST" action="Events.aspx" runat=server>   
          Click the button, and notice the color of the text box.<br><br>
         <asp:TextBox 
         id = "Box" Text = "Hello" BackColor = "Cyan" runat=server/>             
         <br><br>       
        <asp:Button
        id = "Button" OnClick = "Button_Click" Text = "Click Me" 
        runat = server/>         
      </form>
   </body>
</html>

编译代码

要查看 Web 窗体中事件处理如何工作,请将示例页保存为一个带有 .aspx 扩展名(这表示该文件是一个 ASP.NET 页)的文件,并将其部署在您的 IIS 虚拟根目录中任意一处。

请参见

概念

事件和委托

使用事件

引发事件

其他资源

处理和引发事件