コマンドボタンの押下で1回の処理だけにするには
投稿者 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
>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
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
連続で同じコマンドボタンを押下すると、
同じ処理が何度もされてしまいます。
一度、コマンドボタンを押下すると、
1回だけの処理がされ、3・4秒そのコマンドボタン
を押下されないようにするには、
どうすればよいでしょうか?
宜しくお願いします。
Click時の最初に
Button1.Enabled = False
'処理
Button1.Enabled = True
としても、連続でコマンドボタンを押下
すると同じ処理されました。