1.设计界面
2.编写代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace b
{
public partial class Form1 : Form
{
private Boiler boiler;
public Form1()
{
InitializeComponent();
boiler = new Boiler();
if(boiler.onAlarm==null) //预定事件
{
boiler.onAlarm += new EventHandler<BoilerArgs>(boiler_Alarm);
}
}
//声明警报事件方法
private void boiler_Alarm(object sender, BoilerArgs e)
{
if(e.Press>50&&e.Press<80)
{
label4.Text = "黄色警告!";
label4.BackColor = Color.Orange;
}
else if(e.Press>=80&&e.Press<90)
{
label4.Text = "橙色警告!";
label4.BackColor = Color.Orange;
}
else if (e.Press>=90&&e.Press<90)
{
label4.Text = "红色警告!";
}
else if (e.Press == 100)
{
label4.Text = "已经降压!...";
label4.BackColor = SystemColors.Control;
textBox1.Text = "30";
boiler.k = 30;
}
}
//启动锅炉
private void button1_Click(object sender, EventArgs e)
{
timer1.Start();
}
//手动降压
private void button2_Click(object sender, EventArgs e)
{
if (Convert.ToInt32(textBox1.Text) > 30)
{
label4.Text = "已经降压!...";
label4.BackColor = SystemColors.Control;
textBox1.Text = "30";
boiler.k = 30;
}
else
{
label4.Text = "无须降压!...";
}
}
private void timer1_Tick(object sender, EventArgs e)
{
boiler.k++;
textBox1.Text = boiler.k.ToString();
boiler.ProcessAlarm();
}
}
//锅炉数据参数类
public class BoilerArgs : EventArgs
{
private int pressure;
public BoilerArgs(int n)
{
pressure = n;
}
public int Press
{
get {
return pressure;
}
}
}
//锅炉类
public class Boiler
{
public int k;
public Boiler()
{
k = 0;
}
public EventHandler<BoilerArgs> onAlarm;
public void ProcessAlarm()
{
this.onAlarm(this, new BoilerArgs(k));
}
}
}
3.运行结果