MouseClick判定-反応が早い方法はありませんか?
投稿者 ヴァン  (社会人)
投稿日時
2010/2/23 18:53:40
何で反応が早い遅いを判断してます?
Stopwacthとか使って判断してます?
正直言えば、このコードの違いで早い遅いが判断できるなんて凄い能力だと思います。
単純にLabelのリフレッシュのタイミングの問題では?
Stopwacthとか使って判断してます?
正直言えば、このコードの違いで早い遅いが判断できるなんて凄い能力だと思います。
単純にLabelのリフレッシュのタイミングの問題では?
投稿者 るしぇ  (社会人)
投稿日時
2010/2/23 19:35:07
マシンスペックが書かれていないけど、.Net が動く標準的なパソコンで書かれているコードの
実行時間を計ればほぼ0秒になると思います。
処理時間の計測には花ちゃんのサイトのサンプルコードを使用しました。
http://hanatyan.sakura.ne.jp/dotnet/day03.htm#no11
実行時間を計ればほぼ0秒になると思います。
処理時間の計測には花ちゃんのサイトのサンプルコードを使用しました。
http://hanatyan.sakura.ne.jp/dotnet/day03.htm#no11
投稿者 デガンス  (社会人)
投稿日時
2010/2/23 21:18:57
MouseUpイベントに書いてるとか?
投稿者 ゆう  (学生)
投稿日時
2010/2/24 06:33:04
みなさんいろいろとありがとうございます。
Labelの再描画はMy.Application.DoEvents()でやってみましたが、2,3回ほどクリックしていると反応しなくなったりします…。
PCの性能は[Pen4 1.7GHz 512MB WinXP]です。
もう一度調べてみようかと思います。
Labelの再描画はMy.Application.DoEvents()でやってみましたが、2,3回ほどクリックしていると反応しなくなったりします…。
PCの性能は[Pen4 1.7GHz 512MB WinXP]です。
もう一度調べてみようかと思います。
投稿者 るしぇ  (社会人)
投稿日時
2010/2/24 06:49:15
> Labelの再描画はMy.Application.DoEvents()でやってみましたが
それは何の意味も無いような気がします。ってゆーか余計な処理?
もともと、描画はOS任せですが、ラベルの値が変わって、マウスの
イベントを抜ければ再描画されます。
命令の意味も分からず処理の途中で DoEvents するのはトラブルの元。
>2,3回ほどクリックしていると反応しなくなったりします…。
そういった余計なバグを生むだけでしょうね。
それは何の意味も無いような気がします。ってゆーか余計な処理?
もともと、描画はOS任せですが、ラベルの値が変わって、マウスの
イベントを抜ければ再描画されます。
命令の意味も分からず処理の途中で DoEvents するのはトラブルの元。
>2,3回ほどクリックしていると反応しなくなったりします…。
そういった余計なバグを生むだけでしょうね。
投稿者 るしぇ  (社会人)
投稿日時
2010/2/24 06:55:02
まぁ、あれです。コードの問題ではないでしょう。
マウスを連続してクリックしているのだと思いますが、
そもそも、マウスを連続してクリックすると、
ダブルクリックと認識されて、別の意味を持ちますから、
そもそものOSの仕様と合ってない仕様(実現したいこと)
だという事じゃないかと。
マウスを連続してクリックしているのだと思いますが、
そもそも、マウスを連続してクリックすると、
ダブルクリックと認識されて、別の意味を持ちますから、
そもそものOSの仕様と合ってない仕様(実現したいこと)
だという事じゃないかと。
投稿者 るしぇ  (社会人)
投稿日時
2010/2/24 07:05:59
連投すいません。なんかもう、頭が疲れているのでダラダラしゃべってしまって。。。
・・・とはいえ、ダブルクリックイベントからも同じ関数を呼び出すようにすれば
いいだけなんですが、それで「早くなった」とか言い出すような内容じゃないかと
思ったわけです。
・・・とはいえ、ダブルクリックイベントからも同じ関数を呼び出すようにすれば
いいだけなんですが、それで「早くなった」とか言い出すような内容じゃないかと
思ったわけです。
投稿者 ゆう  (学生)
投稿日時
2010/2/24 07:07:49
ふつうはやらないってことですね。
ありがとうございました。
ちなみに、ご指摘のダブルクリックイベントでも同じ処理を呼び出したらスムーズにいきました。
ダブルクリックになっていたんですね…すっきりしました。
自分のコードが間違っているのではないかといろいろ試してしまいました…。
勉強したいと思います…。
ありがとうございました。
ちなみに、ご指摘のダブルクリックイベントでも同じ処理を呼び出したらスムーズにいきました。
ダブルクリックになっていたんですね…すっきりしました。
自分のコードが間違っているのではないかといろいろ試してしまいました…。
勉強したいと思います…。
なにかいい方法があったら教えてください。(VB2008Express)
とりあえず、書いてみたコードです。
最後のやつが反応が良い気がしますが、それでも遅いです。
変なところがあったら、指摘・ヒント等いただけると嬉しいです。
よろしくお願いします。