我有一个按钮单击事件处理程序,其中有一个switch case,用于控制一个事件处理程序中的多个按钮。
我需要使用一个队列,因为当点击一个按钮并进行一些处理时,第二个按钮点击不会干扰第一个按钮点击,而是添加到队列中。我不想使用.enabled=false;
,因为它会完全丢弃第二次点击,我正在编辑某人的软件,所以我不想打破我不知道的事情,那么什么你在暗示吗?
答案 0 :(得分:1)
答案 1 :(得分:0)
代码是:
private Queue<Button> Button_Queue = new Queue<Button>();
private bool isProcessing = false;
private void Button_Click((object sender, EventArgs e){
if(isProcessing){
Button_Queue.Enqueue(this);
}
else
{
isProcessing = true;
// code here
isProcessing = false;
while(Button_Queue.Count > 0){
Button_Queue.Dequeue().PerformClick();
}
}
当然我的与此略有不同,因为我需要传递一些变量,并为此修改了我的click方法。