コマンドボタンの押下で1回の処理だけにするには

タグの編集
投稿者 Taro  () 投稿日時 2008/8/26 23:21:00
こんにちは 
 
連続で同じコマンドボタンを押下すると、 
同じ処理が何度もされてしまいます。 
 
一度、コマンドボタンを押下すると、 
1回だけの処理がされ、3・4秒そのコマンドボタン 
を押下されないようにするには、 
どうすればよいでしょうか? 
 
宜しくお願いします。 
 
 
 
Click時の最初に 
 
Button1.Enabled = False 
 
'処理 
 
Button1.Enabled = True 
 
としても、連続でコマンドボタンを押下 
すると同じ処理されました。
投稿者 Taro  () 投稿日時 2008/8/26 23:22:00
VB2005です。
投稿者   () 投稿日時 2008/8/27 00:09:00
こんにちは。  
 
>Button1.Enabled = False  
>  
>'処理  
>  
>Button1.Enabled = True  
としても、処理が終わるときにはEnabledがTrueに  
なってしまっているので、この方法では対処できません。  
 
Timerを使ってみてはどうでしょうか?  
 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click  
Button1.Enabled = False  
 
'処理  
 
Timer1.Enabled = True  
End Sub  
 
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick  
Button1.Enabled = True  
Timer1.Enabled = False 
End Sub
投稿者 Taro  () 投稿日時 2008/8/27 02:04:00
鍵さん、ありがとうございました。 
ばっちりです。 
 
今後とも宜しくお願い致します。
投稿者 ラキシス  () 投稿日時 2008/8/27 02:04:00
質問の意図した内容にあった回答になっているか分からないけど、こういう事なのかな? 
 
Public Class Form1 
 
  Private isProc As Boolean = False 
 
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
    If Not isProc Then 
      Button1.Enabled = False 
      isProc = True 
 
      System.Threading.Thread.Sleep(3000) 
 
      Button1.Enabled = True 
    End If 
  End Sub 
 
End Class