2016-02-27 173 views
0

我想停下來下面開始之前,我的另一種方法A和重啓的方法A.停止和啓動ItemCheckedevent

我沒有找到一種方法來阻止/下面開始這個方法執行後的方法。

private void CheckTrsfSelect(object sender, ItemCheckedEventArgs e) 
    { 
     lvi = e.Item; 
     if (lvi.SubItems[2].Text == "HOTEL" && TrsfSelect == 1 &&lvi.Checked) 
     { 
      MessageBox.Show("Blabla."); 
      lvi.Checked = false; 
     } 
    } 

LVI是一個公共的ListViewItem

+0

停止 - 如果您不想在事件發生時觸發該方法? – Ian

+0

是的。當我單擊標籤或表單時,此方法A開始 –

+0

因此,我可以說,在前一個完成之前,您要避免雙擊以調用該方法兩次。我對嗎? – Ian

回答

1

考慮使用一個全球性的標誌,以表明該方法目前正在努力避免重複調用的。

這樣,這個方法在處理前面的調用時不能被調用兩次。

bool CheckTrsfSelectIsProcessing = false; 
private void CheckTrsfSelect(object sender, ItemCheckedEventArgs e) 
{ 
    if (!CheckTrsfSelectIsProcessing){ 
     CheckTrsfSelectIsProcessing = true; 
     lvi = e.Item; 
     if (lvi.SubItems[2].Text == "HOTEL" && TrsfSelect == 1 &&lvi.Checked) 
     { 
      MessageBox.Show("Blabla."); 
      lvi.Checked = false; 
     } 
     CheckTrsfSelectIsProcessing = false; 
    } 
} 
+0

我希望瞭解是否有方法可以在程序中停止/啓動此屬性,但是您的解決方案只能完成一半的工作。謝謝。 –