重復執行按鈕事件的問題通常是由于事件訂閱的重復導致的。解決方法有以下幾種:
private void button1_Click(object sender, EventArgs e)
{
// 先取消訂閱事件
button1.Click -= button1_Click;
// 執行按鈕事件的邏輯
// 重新訂閱事件
button1.Click += button1_Click;
}
private bool isProcessing = false;
private void button1_Click(object sender, EventArgs e)
{
if (isProcessing)
{
return;
}
isProcessing = true;
// 執行按鈕事件的邏輯
isProcessing = false;
}
public Form1()
{
InitializeComponent();
button1.Click += button1_Click;
}
private void Form1_Load(object sender, EventArgs e)
{
// 其他初始化邏輯
}