停止并启动ItemCheckedevent

时间:2016-02-27 16:37:35

标签: c# winforms listviewitem

我想在启动另一个方法A之前停止下面的方法,并在执行方法A后重新启动。

我没有办法在下面停止/启动此方法。

    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

1 个答案:

答案 0 :(得分: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;
    }
}