关于事件问题,还请各位大虾指教

lh8287 2005-09-22 05:02:23
看了很多帖子,也看了很多例子,对事件这个东西理解的还是不好。
还请各位大虾能给个具体的例子:
我有一个变量 bool State;
我想写一个事件,就是当State改变的时候,执行一个操作MessageBox.Show("改变了!")

请问这个该怎么写?

拜托了。
...全文
101 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lh8287 2005-09-23
  • 打赏
  • 举报
回复
谢谢大家,我基本上搞清楚了。
julong88 2005-09-22
  • 打赏
  • 举报
回复
调用:
private void button1_Click(object sender, System.EventArgs e)
{
eventtest aeventtest = new eventtest();
aeventtest.onStateChange +=new ComboBoxEx_test.eventtest.stateChange(aeventtest_onStateChange);
aeventtest.State = false;
}

private void aeventtest_onStateChange()
{
MessageBox.Show("Change!");
}


经过测试的
julong88 2005-09-22
  • 打赏
  • 举报
回复
using System;

namespace ComboBoxEx_test
{
/// <summary>
/// eventtest 的摘要说明。
/// </summary>
public class eventtest
{
public eventtest()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
public delegate void stateChange();
public event stateChange onStateChange;
private bool state = false;
public bool State
{
get{return state;}
set{state = value;this.onStateChange();}
}
}
}
oyljerry 2005-09-22
  • 打赏
  • 举报
回复
添加事件,event,然后delegate
zykj_2000 2005-09-22
  • 打赏
  • 举报
回复
看一下 观察者模式
http://www.cnblogs.com/lane_cn/articles/73240.html
lionelwy 2005-09-22
  • 打赏
  • 举报
回复
up
jiezhi 2005-09-22
  • 打赏
  • 举报
回复
随手写的,没有测试
jiezhi 2005-09-22
  • 打赏
  • 举报
回复
public delegate void StateChangeHandle()
public class Subject
{
private bool _state;
public event StateChangeHandle OnStateChange;
public void SetState(bool state)
{
this._state = state;
if ( OnStateChange != null )
{
OnStateChange();
}
}
}

public class TestStateChange
{
static voie Main(string[] args)
{
Subject s = new Subject();
s.OnStateChange += new StateChangeHandle(OnStateChange);
s.SetState(true);
}
static void OnStateChange()
{
Console.WriteLine("state changed");
}

}
自由程序员 2005-09-22
  • 打赏
  • 举报
回复
接分,帮顶
顶帖之恩,当给分相报哈

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧