基本は ・Enabledをfalseに設定することでそれ以降のクリック自体を無効化する ・処理終了後にEnabledをtrueに設定して,クリックを有効にする で対応します。 ただし,短い処理の場合はこれで対応できないこともあるので,500ms以内の連続クリックは無効にする,といった処理が必要になるでしょう。 で,今回に関しては, private void bShtter1_Click(object sender, EventArgs e) { bShtter1.Enabled = false; try { aaaaa(); } catch ( bShtter1.Enabled = true; throw; } } /* aaaaaはそのまま */ private int bbbbb() { try { /* 既存の処理内容 */ } finally { if (InvokeRequire