我也发现了,在c#里,找不到触发事件,但vb.net里却有的。
解决方案 »
- C#序列化一个类为MemoryStream后全是0
- [VB to C#]求高手将此vb代码翻译成c#的
- 如何实现某个程序执行时弹出新窗口,输入值后再继续执行下面的语句
- C#中关于通过委托传递方法的引用的问题
- gridControl可以这么写嘛?
- 一个关于字符串的简单问题,如果在字符串在包含“”。
- 问一个关于代理设置以及检测代理是否可以正常工作的问题
- 有没有C#的加密代码,要加密数据到数据库里的,如base64Decode?
- 如何判断本程序已经打开?
- 关于C# LINK中的IQueryable和IEnumerable的比较
- C#里的HTTP类可以用来写一个代理服务器吗?
- 请问 C# 高手,用 C# 怎样写托盘程序?
tbNew是个Button,下面为自定义其MouseUp事件方法: tbNew.MouseUp+= new System.Windows.Forms.MouseEventHandler(this.tbNew_MouseUp);
private void tbTmpNew_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
{//写入你要做的事的代码}
public delegate void EventHandler(object sender, EventArgs e);在一个名叫A的类中,对这个委托声明了如下的事件:
class A
{
//...
public event EventHandler MyEvent;
//...
}在A中合适的地方激发你的事件:
//...
this.MyEvent(this,new System.EventArgs());
//...在A外部的类中有A的实例
private A _a;用如下的办法来响应你的事件:
1、声明事件处理函数:
private void A_MyEvent(object sender, EventArgs e)
{
//Your code here
}2、在合适的地方为_a添加事件处理:
_a.MyEvent+=new EventHandler(A_MyEvent);
这样,A_MyEvent就能够响应A的MyEvent事件了。
Ordinary, in the form InitializeComponent method,try it:this.textBox1.Change+= new System.EventHandler(this.textBox1_Change);
================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★ 浏览帖子速度极快![建议系统使用ie5.5以上]。 ★ 多种帖子实现界面。
★ 保存帖子到本地[html格式]★ 监视您关注帖子的回复更新。
★ 可以直接发贴、回复帖子★ 采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录!
★ 支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名 ●
可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
Http://www.ChinaOK.net/csdn/csdn.rar
Http://www.ChinaOK.net/csdn/csdn.exe [自解压]
using System;namespace testform
{
/// <summary>
/// Event source
/// </summary>
public class Bird
{
public Bird()
{
}
public void Flying()
{
this.OnBirdEvent(BirdStatus.Flying);
}
public void Dead()
{
this.OnBirdEvent(BirdStatus.Dead); }
public void Sleep()
{
this.OnBirdEvent(BirdStatus.Sleeping);
}
private void OnBirdEvent(BirdStatus s)
{
if(this.BirdEvent!=null)
{
this.BirdEvent(this,new BirdEventArgs(s));
}
}
public event BirdEventHandler BirdEvent;
}
public delegate void BirdEventHandler(object sender,BirdEventArgs e);
public class BirdEventArgs:EventArgs
{
private BirdStatus _s;
public BirdEventArgs(BirdStatus s)
{
this._s=s;
}
public BirdStatus Status
{
get
{
return this._s;
}
}
}
public enum BirdStatus
{
Flying,
Sleeping,
Dead
}
/// <summary>
/// Event Target
/// </summary>
public class Hunter
{
private Bird bird;
public Hunter()
{
bird=new Bird();
bird.BirdEvent+=new BirdEventHandler(this.OnWatch);
}
private void OnWatch(object sender,BirdEventArgs e)
{
switch(e.Status)
{
case BirdStatus.Flying:
this.Sleep();
break;
case BirdStatus.Dead:
this.FireBird();
break;
case BirdStatus.Sleeping:
this.KillBird();
break;
}
}
private void KillBird()
{
...
}
private void FireBird()
{
...
}
private void Sleep()
{
...
}
}
}
感觉vegetablebird(失败到这个岁数还在当流氓)回答的可能有些接近,但不不大清楚C#到底是怎么触发事件的?还是不太明白!
using System;
using System.Windows.Forms;
namespace testform
{
/// <summary>
/// Event source
/// </summary>
public class Bird
{
public Bird()
{
}
public void Flying()
{
this.OnBirdEvent(BirdStatus.Flying);
}
public void Dead()
{
this.OnBirdEvent(BirdStatus.Dead); }
public void Sleep()
{
this.OnBirdEvent(BirdStatus.Sleeping);
}
private void OnBirdEvent(BirdStatus s)
{
if(this.BirdEvent!=null)
{
this.BirdEvent(this,new BirdEventArgs(s));
}
}
public event BirdEventHandler BirdEvent;
}
public delegate void BirdEventHandler(object sender,BirdEventArgs e);
public class BirdEventArgs:EventArgs
{
private BirdStatus _s;
public BirdEventArgs(BirdStatus s)
{
this._s=s;
}
public BirdStatus Status
{
get
{
return this._s;
}
}
}
public enum BirdStatus
{
Flying,
Sleeping,
Dead
}
/// <summary>
/// Event Target
/// </summary>
public class Hunter
{
//private Bird bird;
public Hunter(Bird bird)
{
//bird=new Bird();
bird.BirdEvent+=new BirdEventHandler(this.OnWatch);
}
private void OnWatch(object sender,BirdEventArgs e)
{
switch(e.Status)
{
case BirdStatus.Flying:
this.Sleep();
break;
case BirdStatus.Dead:
this.FireBird();
break;
case BirdStatus.Sleeping:
this.KillBird();
break;
}
}
private void KillBird()
{
//...
MessageBox.Show("Killed");
}
private void FireBird()
{
//...
MessageBox.Show("FireBird");
}
private void Sleep()
{
//...
MessageBox.Show("Sleeping");
}
}
}
如果触发,可以在Main函数中写以下代码:
Bird b = new Bird();
Hunter h = new Hunter(b);
b.Flying();就可以了! :)