- PR -

ボタンの二度押し防止について

投稿者投稿内容
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-04-12 20:44
書き方がまずかったですかね(余計なことまで書いてしまったので)。

Disable、Enableの「代わりに」ということでAhfさんが書かれています。Do Eventsは残すということでいいと思います。

Ahfさんの記述でいうと、

Private buttonClicked As Boolean = False
と記述してあるとして、
コード:
If buttonClicked Then Return

buttonClicked = True
 :
(処理)
 :
Do Events
buttonClicked = False


処理の途中にDo Eventsをどのくらい入れるのが最適かはよくは知りません(汗



[ メッセージ編集済み 編集者: shimix 編集日時 2007-04-12 20:48 ]
渋木宏明(ひどり)
ぬし
会議室デビュー日: 2004/01/14
投稿数: 1155
お住まい・勤務地: 東京
投稿日時: 2007-04-12 20:52
普通のアプリではそんなことやってないものが大半のはずなんですけど、どうしてそんな処理が必要になるんでしょうか?

ボタンのハンドラの中で、非常に時間のかかる処理をやっていたりするんでしょうか?

もしそうなら、「非常に時間のかかる処理」をワーカスレッドで実行すればよろしいんじゃないでしょうか。
.net
ベテラン
会議室デビュー日: 2005/04/11
投稿数: 95
投稿日時: 2007-04-12 23:20

皆様ご返信ありがとうございました。

Ahfさんや、shimixさんの言うとおりの方法で実装できました。
こちらでの実装方法に単純なミスがあったようでうまくいきませんでした。

非常にご迷惑をおかけしました。

どうも、ありがとうございました。
高い手
会議室デビュー日: 2006/08/29
投稿数: 5
お住まい・勤務地: 東京都
投稿日時: 2007-04-17 15:08
function disable_buttons(){
var inputs=document.getElementsByTagName("input");
for(var i=0;i<inputs.length;i++){
if(inputs[i].type=="button"){
inputs[i].disabled=true;
}
}
}
NAL-6295
ぬし
会議室デビュー日: 2003/01/26
投稿数: 966
お住まい・勤務地: 東京
投稿日時: 2007-04-17 15:30
NAL-6295です。

些末な事ですが、
privateな変数ではスコープが広すぎるので、
プロシジャ内のStaticな変数にした方が良いかもしれません。

スキルアップ/キャリアアップ(JOB@IT)