C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 116 を表示中)
■68579 / )  Re[1]: ピクチャボックス上で動くマウスの軌跡を描くプログラム
□投稿者/ しま (35回)-(2013/10/29(Tue) 21:24:21)
No68578 (yoto さん) に返信
> VC#2010を使い始めたばかりの初心者である私は、ボタンを押すとピクチャボックス上で動くマウスの座標に●を描き、軌跡を描きたいと考えています。エラーは吐かれず、コンパイルはうまくいっているのですが、なぜかマウスを動かしても一つも●がピクチャボックス上がひとつも表示されませんでした。いくつかのサイトを回ってもなかなか解決できずに行き詰ってしまったので投稿させていただきました。
> 間違っている個所のご指摘やプログラムの添削を行っていただけると幸いです。以下に自分が作製したプログラムを記載します。

おそらく、思っている動きが実現できないからここに投稿したと思いますが、あなたのプログラムを
読み手に実行して(思い通りにならない)原因を調べた上で、教えて欲しいということですか?
そうでないなら、提示したコードで何が問題なのか示して下さい。

又、フォーム上の座標(10,20)が System.Drawing.Point(300, 200) でいい訳を教えてください

ボタンのクリックイベントから戻るためには a != 0 となる必要があると思いますがいつどこで変数 a の値が変わるのでしょうか?
ボタンのクリックイベント中に DrawString で描画しても、再描画する度に消えてしまうので良い考えとは言えないでしょう。
 ボタンのクリックイベント中に描画していますが画面には反映できないようなコードになっていませんか?
文字は単純な画像(線や点)ではないので数ドットしか離れていない場合、既に描画した文字に or では描画しません
(背景色の部分は背景色で塗潰す)ので、丸の外の部分が背景色で欠けてしまうことがあります。
Mousechase() の index++; では何故配列の上限の検査をしなくていいのでしょうか?
他にもありますが、まずまともに動きそうなコードにすることが先ではないかと考えます。

MouseDown で座標を拾うのを開始して、 MouseUp で座標を拾うのを止めるようにするのがいいでしょう。
移動先の座標を拾うのは MouseMove で行いましょう。
そうすれば、 sleep(1000) なんてことはしなくて済むでしょう。
返信 編集キー/


管理者用

- Child Tree -