2011-01-22 15 views
1

こんにちはすべて 私は大学のプロジェクトで問題を抱えています。 私は自分の大学のC#コースでプロジェクトのためにC#で「4連続けて」ゲームを構築しています。パネルイベントはC言語では機能しません。#

GameFormという名前のFormを作成しました。その中にpanelBoardGameという名前のPanelを追加しました。 to the panelBoardGame私は、(移動を実行するために)クリック可能なラベルの配列を追加しました。また、ボード自体を表すために、ラベルの行列も追加しました。

私の使命は、マウスがパネル領域内にあるときはいつでも、特定のプレーヤーのCoinImageがパネル領域内にある限り、カーソルと共に移動していることです。マウスがその領域の外にあるときは、CoinImageは表示されません。

これを行うには、panelBoardGameのonMouseEnter、OnMouseLeaveイベントをトリガーすることを試みましたが、何とか実行されることさえありません。 マウスがpanelBoardGameエリア内にあるときは、panelBoardGame_MouseMove(......)関数内のコードは実行されません。

誰でも私を助けることができますか?

パネルの内側には、私が画像を投稿カントが、IVEはその周りに黒のボーダーとその中に、ここでImage of the Form

は、フォームのイメージである、ここで画像をアップロードここに新しいイムあるので、パネルにラベルを追加しました

+0

フォームイメージを追加できますか? –

+0

iveは、 –

答えて

1

あなたのラベルはパネルの領域を完全にカバーしています。 Windowsでは、トップコントロールのみがマウスイベントを受け取ります。したがって、マウスがラベルの1つ上にある場合、マウスイベントはラベルに表示され、ラベルを含むパネルには表示されません。ラベルにMouseMoveイベントハンドラを設定すると、そのイベントが実行されます。

+0

という形式の画像を追加しました。はい、ラベルはパネル内のすべての領域をカバーします。カーソルがパネルエリアを移動して、それに続くコインの画像を持ち、カーソルがパネルの外に出たときにコインが消えたい場合は、 –

2

ほとんどの場合、MoveイベントとHoverイベントは、一番上のコントロール(ラベル)に移動します。あなたのパネルはどれですか?

PanelのMouseEnterイベントでマウスをキャプチャすることができます。

boardPanel.Capture = true; 

しかし、これはラベルのマウス操作を妨げる可能性があります。

この(UI)を正しく取得することは、見た目よりもはるかに困難であることがわかります。より簡単なACT設計を検討してください。で開始する。

+0

フォームイベントは実行されますが、パネルイベントは ' t。例えば。 GameForm_OnMouseEnter/Moveは動作しますが、panelBoardGame_OnMouseEnter/Moveは実行されません –

関連する問題