【水汐のC#】例 8-3 利用事件驱动模型来解决温度预警问题

	public partial class hiwari : Form
	{
		Random r = new Random();
		TemperatureWarning tw = new TemperatureWarning();
		public hiwari()
		{
			InitializeComponent();
			tw.OnWarning += new TemperatureWarning.TemperatureHandler(tw_OnWarning);
		}
		 

		private void button2_Click_1(object sender, EventArgs e)
		{
			timer1.Enabled = true;
		}
		private void tw_OnWarning(object sender,TemperaTureEventArgs e)
		{
			if (e.Temperature < 35)
			{ label3.Text = "normal"; textBox2.BackColor = Color.Blue; }
			else if (e.Temperature < 37)
			{ label3.Text = "yellow warn"; textBox2.BackColor = Color.Yellow; }
			else if (e.Temperature < 40)
			{ label3.Text = "orange warn"; textBox2.BackColor = Color.Orange; }
			else { label3.Text = "warn!!!!"; textBox2.BackColor = Color.Red; }
		}
		private void timer1_Tick(object sender, EventArgs e)
		{
			int nowTemp;
			if (textBox1.Text == "") nowTemp = 35;
			else nowTemp = Convert.ToInt32(textBox1.Text);
			int change = r.Next(-2, 3);
			textBox1.Text = (change + nowTemp).ToString();
			tw.Monitor(change + nowTemp);
		}
		class TemperaTureEventArgs : EventArgs
		{
			int temperature;
			public TemperaTureEventArgs(int t)
				{ temperature = t;			}
			public int Temperature
			{
				get { return temperature; }
			}
		
		}
		class TemperatureWarning
		{
			public delegate void TemperatureHandler(object sender, TemperaTureEventArgs e);

			public event TemperatureHandler OnWarning;
			public void Monitor(int tp)
			{
				TemperaTureEventArgs e = new TemperaTureEventArgs(tp);
				if (OnWarning != null)
				{ OnWarning(this, e); }
			}
		}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值