如何在c#中创建自己的事件?

时间:2011-04-04 09:03:22

标签: c# events client-server

  

可能重复:
  How can I make my own event in C#?

先生,我对事件有一些疑问......

  1. 我想编写自己的事件,当用户在按钮上单击3次时应该触发该事件?
  2. 在客户端服务器应用程序中,客户端连接到服务器,现在如果客户端断开连接,那么我希望它必须在服务器上触发事件,通知它已断开连接。我可以使用计时器或一些循环和不同的线程来实现这一点。该线程不断检查客户端的连接。这就对了。但它有点像投票机制。我想写一些类似中断机制的东西。我的意思是我不想使用计时器或循环。当客户端自愿或不情愿地从客户端或服务器端断开连接时,我的服务器应该通知客户端已断开连接。请不要告诉我们如何制作自定义活动。 请帮忙... 感谢...

3 个答案:

答案 0 :(得分:2)

public event EventHandler<EventArgs> Clicked3Times;


protected virtual void OnClicked3Times()
{
     var handler = this.Clicked3Times;
     if (handler != null) 
     {
         handler(this,EventArgs.Empty);
     }
}

然后调用..

this.OnClicked3Times();

答案 1 :(得分:1)

1您可以为单击按钮的事件实施操作。因此,每次单击按钮时都会执行它。如果有3次点击,此处理程序将计算点击次数并引发其他事件。

int nClicks;
event EventHandler TrippleClick;

public Form1()
{
    InitializeComponent();
    this.button1.Click += new System.EventHandler(this.button1_Click);
    nClicks = 0;
    TrippleClick = new EventHandler(OnTrippleClick);
}

void OnTrippleClick(object sender, EventArgs e)
{
    MessageBox.Show("Tripple click");
}

private void button1_Click(object sender, EventArgs e)
{
    nClicks++;
    if (nClicks == 3)
    {
        TrippleClick(sender, e);
        nClicks = 0;
    }
}

答案 2 :(得分:0)

这里很好example

基本上你必须写这样的东西:

public event EventHandler MyEvent;

void OnMyEvent() {
    if ( MyEvent != null )
        MyEvent( new object(), new EventArgs() );
}

当您想要调用活动时,请在代码中调用OnMyEvent()函数