C#如何在 Windows 窗体应用程序中使用事件

2024年12月04日 11:08
有2个网友回答
网友(1):

Windows 窗体应用程序中的一种常见情况是显示带控件的窗体,然后根据用户单击的控件执行特定操作。例如,当用户在窗体中单击 Button 控件时,该控件会引发一个事件。通过处理该事件,应用程序可以针对该按钮单击操作执行适当的应用程序逻辑。有关Windows 窗体的更多信息,请参见 Windows 窗体入门。处理Windows 窗体上的按钮单击事件1.创建一个具有 Button 控件的 Windows 窗体。private Button button; 2.定义一个与 Click 事件委托签名匹配的事件处理程序。Click 事件为该委托类型使用 EventHandler 类,而为该事件数据使用 EventArgs 类。 void Button_Click(object sender, EventArgs e) {...} 3.将事件处理程序方法添加到 Button 的Click 事件。 button.Click +=new EventHandler(this.Button_Click);注意设计器(如 Visual Studio 2005)将通过生成与下面的示例中的代码类似的代码来为您执行此事件连接。示例下面的代码示例处理 Button 的Click 事件以改变 TextBox 的背景色。以粗体表示的元素显示了该事件处理程序以及它如何连结到 Button 的Click 事件。此示例中的代码不是使用可视设计器(例如 Visual Studio 2005)编写的,并且只包含基本的编程元素。如果您使用设计器,它将生成附加代码。using System; using System.ComponentModel; using System.Windows.Forms; using System.Drawing; publicclass MyForm : Form{private TextBox box; private Button button; public MyForm() : base(){box =new TextBox(); box.BackColor = System.Drawing.Color.Cyan; box.Size =new Size(100,100); box.Location =new Point(50,50); box.Text ="Hello"; button =new Button(); button.Location =new Point(50,100); button.Text ="Click Me"; // To wire the event, create // a delegate instance and add it to the Click event. button.Click +=new EventHandler(this.Button_Click); Controls.Add(box); Controls.Add(button);}// The event handler.privatevoid Button_Click(object sender, EventArgs e){box.BackColor = System.Drawing.Color.Green;}// The STAThreadAttribute indicates that Windows Forms uses the // single-threaded apartment model. [STAThreadAttribute] publicstaticvoid Main(string[] args){Application.Run(new MyForm());}}编译代码将上面的代码保存到一个文件(对于 C# 文件,扩展名为 .cs,对于 Visual Basic 2005,扩展名为 .vb)中,进行编译,然后执行。例如,如果源文件名为 WinEvents.cs(或 WinEvents.vb),请执行下面的命令。 您的可执行文件将被命名为 WinEvents.exe。

网友(2):

例如,当用户在窗体中单击 Button 控件时,该控件会引发一个事件。通过处理该事件,应用程序可以针对该按钮单击操作执行适当的应用程序逻辑。有关Windows 窗体的更多信息,请参见 Windows 窗体入门。处理Windows 窗体上的按钮单击事件1.创建一个具有 Button 控件的 Windows 窗体。private Button button; 2.定义一个与 Click 事件委托签名匹配的事件处理程序。Click 事件为该委托类型使用 EventHandler 类,而为该事件数据使用 EventArgs 类。 void Button_Click(object sender, EventArgs e)
{...} 3.将事件处理程序方法添加到 Button 的Click 事件。 button.Click +=new EventHandler(this.Button_Click);注意设计器(如 Visual Studio 2005)将通过生成与下面的示例中的代码类似的代码来为您执行此事件连接。示例下面的代码示例处理 Button 的Click 事件以改变 TextBox 的背景色。以粗体表示的元素显示了该事件处理程序以及它如何连结到 Button 的Click 事件。此示例中的代码不是使用可视设计器(例如 Visual Studio 2005)编写的,并且只包含基本的编程元素。如果您使用设计器,它将生成附加代码。using System;
using System.ComponentModel;
using System.Windows.Forms;
using System.Drawing;
publicclass MyForm : Form{private TextBox box;
private Button button;
public MyForm() : base(){box =new TextBox();
box.BackColor = System.Drawing.Color.Cyan;
box.Size =new Size(100,100);
box.Location =new Point(50,50);
box.Text ="Hello";
button =new Button();
button.Location =new Point(50,100);
button.Text ="Click Me";
// To wire the event, create
// a delegate instance and add it to the Click event. button.Click +=new EventHandler(this.Button_Click);
Controls.Add(box);
Controls.Add(button);}// The event handler.privatevoid Button_Click(object sender, EventArgs e){box.BackColor = System.Drawing.Color.Green;}// The STAThreadAttribute indicates that Windows Forms uses the
// single-threaded apartment model. [STAThreadAttribute]
publicstaticvoid Main(string[] args){Application.Run(new MyForm());}}编译代码将上面的代码保存到一个文件(对于 C# 文件,扩展名为 .cs,对于 Visual Basic 2005,扩展名为 .vb)中,进行编译,然后执行。例如,如果源文件名为 WinEvents.cs(或 WinEvents.vb),请执行下面的命令。