如何添加或删除事件处理程序 您所在的位置:网站首页 添加和删除程序步骤 如何添加或删除事件处理程序

如何添加或删除事件处理程序

2024-06-02 10:24| 来源: 网络整理| 查看: 265

如何处理控件事件(Windows 窗体 .NET) 项目 10/13/2023

控件(和窗体)的事件通常通过 Visual Studio Visual Designer for Windows Forms 设置。 通过可视化设计器设置事件称为在设计时处理事件。 还可以在代码中动态处理事件,这称为在运行时处理事件。 可以通过在运行时创建的事件,根据应用当前正在执行的操作动态连接事件处理程序。

重要

面向 .NET 7 和 .NET 6 的桌面指南文档正在撰写中。

处理事件 - 设计器

在 Visual Studio 中,使用可视化设计器管理控件事件的处理程序。 可视化设计器将生成处理程序代码,并将其添加到事件中。

设置处理程序

使用“属性”窗格添加或设置事件的处理程序:

打开包含要更改的控件的窗体的可视化设计器。

选择 控件。

通过按事件按钮 () 将“属性”窗格模式更改为“事件”。

查找要向其添加处理程序的事件,例如 Click 事件:

执行下列操作之一:

双击事件以生成新处理程序,如果未分配任何处理程序,则为空。 如果不为空,则此操作会打开窗体的代码,并导航到现有处理程序。

使用选择框 () 选择现有处理程序。

选择框将列出具有事件处理程序兼容方法签名的所有方法。

清除处理程序

若要删除事件处理程序,不能只删除窗体的代码隐藏文件中的处理程序代码,该代码仍由事件引用。 使用“属性”窗格删除事件的处理程序:

打开包含要更改的控件的窗体的可视化设计器。

选择 控件。

通过按事件按钮 () 将“属性”窗格模式更改为“事件”。

查找包含要删除的处理程序的事件,例如 Click 事件:

右键单击事件,然后选择“重置”。

处理事件 - 代码

通常在设计时通过可视化设计器将事件处理程序添加到控件。 不过,可以在运行时创建控件,这需要在代码中添加事件处理程序。 在代码中添加处理程序还让你可以向同一事件添加多个处理程序。

添加处理程序

以下示例演示如何创建控件并添加事件处理程序。 此控件是在 Button.Click 事件处理程序中创建的不同按钮。 按下 Button1 时。 代码会移动并调整新按钮的大小。 新按钮的 Click 事件由 MyNewButton_Click 方法处理。 若要显示新按钮,那么会将其添加到窗体的 Controls 集合中。 还有用于删除 Button1.Click 事件处理程序的代码,这将在删除处理程序部分中进行讨论。

private void button1_Click(object sender, EventArgs e) { // Create and add the button Button myNewButton = new() { Location = new Point(10, 10), Size = new Size(120, 25), Text = "Do work" }; // Handle the Click event for the new button myNewButton.Click += MyNewButton_Click; this.Controls.Add(myNewButton); // Remove this button handler so the user cannot do this twice button1.Click -= button1_Click; } private void MyNewButton_Click(object sender, EventArgs e) { } Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 'Create and add the button Dim myNewButton As New Button() With {.Location = New Point(10, 10), .Size = New Size(120, 25), .Text = "Do work"} 'Handle the Click event for the new button AddHandler myNewButton.Click, AddressOf MyNewButton_Click Me.Controls.Add(myNewButton) 'Remove this button handler so the user cannot do this twice RemoveHandler Button1.Click, AddressOf Button1_Click End Sub Private Sub MyNewButton_Click(sender As Object, e As EventArgs) End Sub

若要运行此代码,请使用 Visual Studio 可视化设计器对窗体执行以下操作:

向窗体添加新按钮并将其命名为 Button1。 通过按事件按钮 () 将“属性”窗格模式更改为“事件”。 双击 Click 事件以生成处理程序。 此操作将打开代码窗口并生成空白 Button1_Click 方法。 将方法代码替换为上述代码。

有关 C# 事件的详细信息,请参阅事件 (C#) 有关 Visual Basic 事件的详细信息,请参阅事件 (Visual Basic)

删除处理程序

添加处理程序部分使用一些代码来演示添加处理程序。 该代码还包含用于删除处理程序的调用:

button1.Click -= button1_Click; RemoveHandler Button1.Click, AddressOf Button1_Click

此语法可用于从任何事件中删除任何事件处理程序。

有关 C# 事件的详细信息,请参阅事件 (C#) 有关 Visual Basic 事件的详细信息,请参阅事件 (Visual Basic)

如何在同一个处理程序中使用多个事件

通过 Visual Studio 可视化设计器的“属性”窗格,可以选择其他事件已使用的同一处理程序。 按照设置处理程序部分中的说明选择现有处理程序,而不是创建新的处理程序。

在 C# 中,处理程序附加到窗体设计器代码中控件的事件,该代码通过可视设计器进行更改。 有关 C# 事件的详细信息,请参阅事件 (C#)

Visual Basic

在 Visual Basic 中,处理程序附加到窗体的代码隐藏文件中控件的事件,其中声明了事件处理程序代码。 可以将多个 Handles 关键字添加到事件处理程序代码中,以将其用于多个事件。 可视化设计器将生成 Handles 关键字,并将其添加到事件处理程序中。 不过,只要处理程序方法的签名与事件匹配,你可以轻松地自行对任何控件的事件和事件处理程序执行此操作。 有关 Visual Basic 事件的详细信息,请参阅事件 (Visual Basic)

此代码演示如何将同一方法用作两个不同 Button.Click 事件的处理程序:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click, Button2.Click 'Do some work to handle the events End Sub 另请参阅 控件事件 事件概述 使用鼠标事件 使用键盘事件 System.Windows.Forms.Button


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有