2011-04-04 89 views
1

可能重複:
How can I make my own event in C#?如何在c#中創建自己的事件?

先生,我有一個關於事件的一些疑問......

  1. 我想,當用戶寫我自己的事件應該被解僱點擊3次按鈕?
  2. 在客戶端服務器應用程序中,客戶端連接到服務器,現在如果客戶端斷開連接,那麼我希望它必須在服務器上觸發事件,表明它已斷開連接。我可以使用計時器或一些循環和一個不同的線程來實現這一點。這個線程不斷檢查客戶端的連接。這就對了。但它像投票機制一樣。我想寫一些中斷機制。我的意思是我不想使用計時器或循環。當客戶端意願或不願意從客戶端或服務器端斷開連接時,我的服務器應通知該客戶端斷開連接。請不要告訴如何製作自定義事件。 請幫助... 謝謝...
+0

請不要告訴如何讓自定義事件。我非常清楚這一點。告訴我一些我在問什麼。 plzzzzz ..... – himanshu 2011-04-04 09:28:23

回答

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; 
    } 
} 
+0

先生,我知道你在說什麼,但是如何計算用戶點擊而不使用.net框架的Click事件。 – himanshu 2011-04-04 09:25:06

+0

並在客戶端服務器查詢何時引發客戶端斷開連接的事件。如何證明客戶端不再連接 – himanshu 2011-04-04 09:26:12

+0

我認爲,如果沒有Click事件,它將會更加複雜並且不便攜,因爲使用操作系統API(恕我直言)會很有必要。 – user502144 2011-04-04 09:32:20

0

這邊獨好example

基本上你寫這樣的事:

public event EventHandler MyEvent; 

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

,當你想打電話給你的事件,在您的代碼中,您可以撥打OnMyEvent()函數

+0

先生,它不是我要求的.. – himanshu 2011-04-04 09:10:36

+0

你通常想要使OnMyEvent'虛擬' – 2011-04-04 09:13:59

2
public event EventHandler<EventArgs> Clicked3Times; 


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

然後調用..

this.OnClicked3Times(); 
+0

如何計算用戶點擊而不使用.net框架的Click事件。 – himanshu 2011-04-04 09:24:02

相關問題