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.运行结果

C#——窗体程序,模拟高温高压锅炉降压处理相关推荐

  1. 【Java小项目实训】编写一个窗体程序模拟单词拼写

    实训要求 窗口中有一个TextFie1d对象和一个按钮对象,将这两个对象添加到一个面板中,然后将该面板添加到窗口的北面.用户在TextField 对象中输入一个英文单词,然后回车或单击按钮,程序将创建 ...

  2. java swing开发窗体程序开发(三)事件(Mouse,Foucs,Key,Window)

    接着刚刚的事件讲 补充一点:事件的触发前提,添加了这个监听器的组件必须是处于激活状态的才可行 (一)MouseEvent事件 该事件的触发是由鼠标的动作引起的,引起的情况可以是下面5种,按下鼠标,释放 ...

  3. 程序模拟电影院窗口卖票,多线程Demo

    某电影院目前正在上映国产大片,共有100张票,而它有3个窗口卖票,请设计一个程序模拟该电影院卖票 卖电影票Demo 实现步骤 1.SellTicket类 2.SellTicketDemo测试类 3.测 ...

  4. 关于表单的java的程序_JAVA BOT程序模拟人类用户填写表单 并 发送

    仿真表单:BOT程序模拟人类用户填写表单 并 发送 抓取表单: HTTPSocket http = new HTTPSocket(); SocketFactory.setProxyHost(" ...

  5. VS2010 win32项目windows窗体程序 向导生成代码解析

    目录: 1.Win32项目的windows窗体程序的向导生成了如下代码 2.手工生成代码如下 3.当消息队列中没有消息需要处理,我们可以利用这段时间处理我们自己的任务 1.Win32项目的window ...

  6. VS C#窗体程序未能找到Form1.resx文件解决方法

            新建另一C#窗体程序,在窗体上任意添加一个控件,在解决方案视图下可以看到多了一个"Form1.resx"文件,在工程文件目录中找到它,复制到缺失Form1.resx ...

  7. 【机器学习入门到精通系列】SVM与核函数(附程序模拟!)

    文章目录 1 核函数本质 2 选取 3 程序模拟 3.1 模拟数据集 3.2 经过高斯核,得到新的数据集! 1 核函数本质 1.在实际数据上经常遇到线性不可分的情况 而解决方法是将特征映射到更高维的空 ...

  8. 初步的看一下C#窗体程序的直接反汇编代码

    C#基本窗体程序: 进入反汇编查看: 看一下把字符串赋给文本框的这段反汇编: 大体的阅读一下,以略懂汇编的人来看,基本含义: ebp寄存器的值减去一个值,取出此偏移地址的值,赋给eax:     ea ...

  9. Java:假设车库有3个车位(可以通过boolean[]数组来表示车库)可以停车,写一个程序模拟多个用户开车离开,停车入库的效果。注意:车位有车时不能停车。

    假设车库有3个车位(可以通过boolean[]数组来表示车库)可以停车,写一个程序模拟多个用户开车离开,停车入库的效果.注意:车位有车时不能停车. 1)使用阻塞队列来实现(BlockingQueue& ...

  10. C#中实现视频播放器窗体程序(附源码下载)

    场景 效果 实现 新建窗体程序,然后从工具箱中拖拽DataGridView控件,然后在控件右上角点击新增列,设置好每列 的Name属性和Headertext属性. 新建Video类 项目-右击-新增- ...

最新文章

  1. [译] ES6+ 中的 JavaScript 工厂函数(第八部分)
  2. 17_clickhouse分布式集群部署
  3. linq中给字段添加别名
  4. imclearboder matlab,Lucas
  5. Bootstrap3 正文文本样式
  6. jwt判断token是否过期_4spring-security5整合jwt做登录、权限验证,全网最全!!!可用...
  7. es6转es5_ES6 配置运行环境
  8. linux常用cat,Linux常用操作命令之cat
  9. SMCJ系列TVS瞬态抑制二极管型号参数表
  10. 阿里MNN推理框架相关介绍
  11. 怎样实现在单片机上跑LINUX系统,简述Linux如何应用在嵌入式单片机上
  12. 傅里叶变换与快速傅里叶变换
  13. 微信小程序「柒留言」 — 无留言公众号开通微信公众号留言功能(建议收藏)
  14. 4个步骤:聚类分析如何分析用户?
  15. Selenium | 页面跳转后无法定位到元素,怎么破?
  16. 【渝粤教育】广东开放大学民事诉讼法 形成性考核 (23)
  17. 微信小程序----API、获取openid、消息订阅
  18. SQL server 嵌套查询
  19. 华为服务器视频无法播放视频文件夹,服务器上的视频文件
  20. 文件IO编程之学习总结

热门文章

  1. 思科本周发布一季财报:利润或继续下滑
  2. 360数科知微实验室发布反诈报告:揭秘黑灰产数据流转真相
  3. 期货日内交易如何判断方向
  4. php 数字转换为字符串,PHP-将数字转换为Excel的字符串
  5. Error Based Injection和sql注入函数
  6. 基于词频的文件相似度
  7. KETTLE使用通配符匹配多个文件输入到一张表中
  8. Caffe学习笔记(一):CIFRA-10在Caffe上进行训练学习
  9. Redundant Paths(边双连通分量缩点+思维构造)
  10. EXCEL无法插入公式