2012-04-17 14 views
0

Visual Studio 2010では、現時点でグリッドベースのダンジョンシステムを作成しようとしています。私は64個の小さなユーザーコントロールオブジェクトを含んでいます8×8グリッドにまとめられたGridSquaresグリッドの正方形の背後にあるアイデアは、「ダンジョン」内の潜在的な移動スペースとして機能することです。私が現時点で持っている問題は、ユーザーコントロール(GridSquares)上でクリックイベントを呼び出す必要があることです。このイベントは、スクリーン上に配置されているため、座標(名前)を取得して比較できます。しかし、イベントを呼び出すと(クリックすることで)機能しません。Visual Studio 2010 - C#UserControlイベントの起動

私はuserControl(GridSquareオブジェクト)内に配置するとイベントが機能することを知っていますが、ユーザーコントロール自体をクリックしてもクリックする必要があります。

配置された64個のオブジェクトがすべて同じタイプであるとすれば、イベントを通して返されるユーザーコントロールの名前が必要なため、GridSquareクラス内では動作できません。

これは意味があると思いますが、さらに説明する必要があるかどうか尋ねてください。

多くのおかげで、リアム

EDIT: 私は、これが役立ちますどのくらいかを表示するためにどのようなコードはよく分からないが、GridSpaceコントロールは、すでに「ダンジョン」ユーザコントロールに追加されました。次に、私はすべての64を辞書に追加します:

gridSpaces.Add(gs11.Name, gs11); 

ここで、gs11はGridSquareの名前です。

ここからは、呼び出されなかったダンジョン画面の個々のユーザーコントロールのイベントハンドラを作成しようとしました。

+0

WindowsフォームやWPFを助けることだろうか? –

+0

私はWindowsフォームを使用しています – Lazz

+0

いくつかのコードを投稿できますか? –

答えて

0

私は私が何をあなたの言ってもらうと思います。ユーザーコントロールにこのコードを追加します。

public new event EventHandler Click { 
    Add { 
     base.Click += value; 
     foreach(Control i in Controls) { 
      i.Click+=value; 
     } 
    } 
    remove { 
     base.Click -= value; 
     foreach(Control i in Controls) { 
      i.Click -= value; 
     } 
    } 
    } 

これは私がすべてのエラーを作るdidntの願って、ユーザーコントロール内のすべてにクリックイベントを追加し、これは

+0

これは絶対に完璧です。それは私がそれが必要なものを正確に行います。ありがとうございました – Lazz

+0

問題はありません:)私はカスタムボタンを作っていたときとまったく同じ問題に遭遇しました – Oztaco

0

あなたは、各GridSquareに同じハンドラを使用し、クリックされた1を決定するsenderパラメータを使用することができます。

protected void Page_Load(object sender, EventArgs e) 
{ 
    for (int i = 0; i < 64; i++) 
    { 
     GridSquare square = new GridSquare(); 
     square.Click += new EventHandler(gridSquare_Click); 
     grid.Add(gridSquare); 
    } 
} 

void gridSquare_Click(object sender, EventArgs e) 
{ 
    GridSquare square = (GridSquare)sender; 
    // do something cool with the clicked square here 
} 
+0

ありがとうございます。問題は、メインユーザーコントロールが、実際のグリッド四角いオブジェクトにクリックイベントを登録せず、その内部にあるものだけを登録することです。 – Lazz

+0

@Lazz、質問にあなたのコードの一部を追加するのはいい気分です。 :) – Bazzz

関連する問題