- - PR -
C# pictureBoxを使わずにOnPaintで描画した画像にMouseUpなどを使いたい
«前のページへ
1|2|3
投稿者 | 投稿内容 | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-06 08:41
while(true)は無限ループさせる方法だったのですね。
gotoじゃなくてbreakでもよかったんですね。 | ||||||||||||||||
|
投稿日時: 2005-12-06 15:53
これでも、できました。ありがとうございました。 | ||||||||||||||||
|
投稿日時: 2005-12-06 15:57
while(true)無しでできたと思ったんですが、やっぱり無しじゃできなくて、Focus();も働きませんでした。
| ||||||||||||||||
|
投稿日時: 2005-12-06 20:02
推考してから上げて欲しいです(-.-; 都度都度、ポンポン上げられると、理解しにくいです。
参考: 「質問」をされる方へ C# インデックスが配列の境界外です 長いから読んでもらえないんだろうな、と思いながら、削れなかった。。。 何が聞きたいのか、わからないんですね。
これって、こうですよね?
タイトルは“題”であって、文の一部ではありません。タイトルは、本文の内容を表すものを付けるために最後に考えるようにするべきであって、タイトルから書き始めると、内容と不一致を起こしがちです。 句読点や、カッコを適切に使ってください。私は最初、「『ヘルプで領域を使用したヒットテスト』って、なに?そんな項目があるの?」と思ってしまいました。 句点で文をつなげず、読点で切ってください。そうすることで、後で読み直したとき、言葉の係り受けがはっきりして、何か抜けていないか、他人に通じるかどうか、わかるでしょう。実際、丸カッコの部分が抜けています。 # 『火垂るの墓』を読んでみてください。読みにくいと思います。 一度「名前空間」を俯瞰したり、概要を見るときに「継承関係」を把握するようにしてください。MSDN に「日本語が書かれているように思えない」のは、自分がどんな情報が欲しいのかはっきりさせておらず、いらない情報も取り込んでいるからです。いる情報だけ切り取れば、すっきり理解しやすくなります。 PaintBox も Form も、Control クラスを継承しているので、Control クラスが発生させる Paint イベントを処理できます。 「Onイベント名」のメソッドは、イベントを発生させるためだけに使用するのが望ましく、ここに、イベントが発生することによる処理を書くことは、控えましょう(Kazukiさんが 2005-12-05 23:28 に指摘)。 加えて、OnPaint がどのような時に実行されるか、以前のスレッドで説明していますよね(渋木宏明(ひどり)さんの 2005-12-04 12:13)?
プログラム全体的に、
を、見直した方がいいと思います。それが出来ていないから、
このようなことになるのだと思います。さっぱりわかんないんですよね。 わからない点: 1.マルチスレッドと、ランダムシャッフルの関係 前者は複数の処理を、どの様に実行するか。後者は整列の方法。どう関係するの? OnPaint でシャッフルすることと、マルチスレッドがどう関係しているの? 2.「int[] x」の謎 何を表すのか、わからない。 引用されているコードには表れていないんだけど? 3.14秒の怪 どこから「14秒」が出てきたのか。 最初、「14秒だけ反応で問題ない」といっていながら、なぜ問題になったのか。 どこから「form.Created == false」が出てきたのか。 (「while (true)」の為なら、あまりにもお粗末) 4.「切って移す」の謎 捨てパイを、手持ちのパイからドラッグして、場にドロップする、ってこと? 私も色々な麻雀ゲームをしましたが、捨てパイ選びは、どれもクリックして選択なのに? 5.なぜ「OnPaint」なのか このメソッドは「Paint イベントの励起」だけを行うべき。 処理の内容は「コントロールをユーザが見えるようにする」こととは思えない。 この中で MouseUp を拾う(待つ)目的はなんなのか。 お勧めの勉強ポイント: 1.各コントロールのイベント、メソッドの目的 2.オブジェクトの生存期間について 3.変数のスコープについて 4.コントロールの継承関係について 5.C# の予約語について 6.プログラムフローの制御について 7.IDisposable インターフェイスについて ___________________________________________________________________ □ written by Jitta on 2005/12/06 □ Microsoft MVP for Visual Developer ASP/ASP.NET Oct.2005-Sept.2006 _________________ 検索のコツ・質問のコツ BBコードミスを修正 [ メッセージ編集済み 編集者: Jitta 編集日時 2005-12-06 20:04 ] | ||||||||||||||||
|
投稿日時: 2005-12-06 22:56
私なら「Formに全てベタにコード書け!」っていう制約があるとしたら下のように書きます。
参考までに。 フォームのフィールド(メンバ変数) Image 表示用の画像 Point 画像表示位置(複数箇所に表示したいならArrayListあたりで) Form_Load ・画像の読み込み ・画像の位置の初期化 Form_Paint ・画像の表示位置に画像を表示する Form_MouseUp ・クリックした場所が,画像にかぶってるか判定 ・画面に被ってるなら表示位置を更新 ・InvalidateとRefleshメソッドでフォームを再描画 # 後,確認してみたのですが,やっぱりimageのnullチェックいらないと # 思いますよ。 # うちは,VC#2005Express(英語版)でやってみたのですが # ファイルが無い場合はFileNotFoundExceptionが出てました。 # 連続でちょっとずつ情報を小出しにするくらいなら,直前の記事を # 編集したほうが幸せになれると思います。 [ メッセージ編集済み 編集者: Kazuki 編集日時 2005-12-06 22:58 ] |
«前のページへ
1|2|3