GUI事件

来源:互联网 发布:python与数据挖掘 编辑:程序博客网 时间:2024/04/28 08:33
C#中的GUI事件处理
Windows Forms(支持GUI应用程序的.NET框架)中的事件处理使用.NET事件处理模式。我们下面将应用这种模式编写一个简单的应用程序,该应用程序有一个继承自System.Windows.Forms.Form类的MyForm类。如果仔细地研究一下代码和其中的三行注释,就会发现其实我们无须定义代理和使用event关健字调用这些代理,因为我们已经可以使用GUI控制(表格、按钮等)的事件(鼠标点击等),代理就是System.EventHandler。当然了,我们仍然需要定义方法,创建代理对象(System.EventHandler),并在代理对象中安装方法,一旦有事件发生,方法就会开始执行。
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;

public class MyForm Form{
private Button m_nameButton;
private Button m_clearButton;
private Label m_nameLabel;

private Container m_components = null;

public MyForm(){
initializeComponents();
}
private void initializeComponents(){
m_nameLabel=new Label();
m_nameButton = new Button();
m_clearButton = new Button();

SuspendLayout();

m_nameLabel.Location=new Point(16,16);
m_nameLabel.Text="Click NAME button, please";
m_nameLabel.Size=new Size(300,23);

m_nameButton.Location=new Point(16,120);
m_nameButton.Size=new Size(176, 23);
m_nameButton.Text="NAME";
//创建代理,并安装方法,将代理捆绑在按钮的Click事件上
m_nameButton.Click += new System.EventHandler(NameButtonClicked);

m_clearButton.Location=new Point(16,152);
m_clearButton.Size=new Size(176,23);
m_clearButton.Text="CLEAR";
//创建代理,并安装方法,将代理捆绑在按钮的Click事件上
m_clearButton.Click += new System.EventHandler(ClearButtonClicked);

this.ClientSize = new Size(292, 271);
this.Controls.AddRange(new Control[] {m_nameLabel,m_nameButton,m_clearButton});
this.ResumeLayout(false);
}
//定义输入参数与代理完全相同的方法
private void NameButtonClicked(object sender, EventArgs e){
m_nameLabel.Text="My name is john, please click CLEAR button to clear it";
}
private void ClearButtonClicked(object sender,EventArgs e){
m_nameLabel.Text="Click NAME button, please";
}
public static void Main(){
Application.Run(new MyForm());
}
}
 
原创粉丝点击