2012-03-24 17 views
-1
public class Car 
{ 
    public string StreetName; 
    public RectangleShape Car_Shape; 
    public int ArrivalTime, Axis, Lane; 
    public string Direction; 
    public double Car_Delay; 
    public bool Mobile; 
    public Stopwatch Sw = new Stopwatch(); 
    public Car(int ArriT) 
    { 
     ArrivalTime = ArriT; 
    } 
    public void SetDelay() 
    { 
    } 
} 

これはコードで私は図形のいずれかを押したときに、インスタンスを作成するときに、私は、メインフォーム上のShapeContainerに「車」のすべての長方形の形状を追加し、私がやりたいことは、ありますこの形状に関連したデータは...私はイベントを作ったが、私はPARAMATERSを渡すことはできません、私は代表団を使用しようとした長方形イベントプログラム

どうもありがとう

を「遅延」の「方向」のように、テキストボックスに示されている、またはされています
+0

は、あなたが同様にあなたのフォームコードを投稿することができ もしそうなら、あなたのような何かをするだろうか?作成されたCarインスタンスを保存し、フォームのオーバーライドされたOnClick()メソッドで、どのオブジェクトがクリックされたかを確認する必要があります。 – Alan

+0

タイトルに言語を含めないでください。それは何のためのタグです –

答えて

0

イベントを実装するビジュアルパワーパックRectangleシェイプクラスを使用するか、またはRectangleのユーザーコントロールを作成して単にclickイベントを聴くだけです。どの車が矩形に合っているかを認識するには、辞書を保存することができますが、それは醜いかもしれません。また、車そのものを矩形のクリックイベントを聴いて自分のクリックイベントを呼び出すユーザーコントロールにすることもできます。イベントの送信者パラメータを使用して車のプロパティを設定します。

0

(申し訳ありません私の悪い英語)

あなたRectangleShapeレイズクリックまたはMouseDownEventsしていますか?

public class Car 
{ 
    public string StreetName; 
    public RectangleShape Car_Shape; 
    public int ArrivalTime, Axis, Lane; 
    public string Direction; 
    public double Car_Delay; 
    public bool Mobile; 
    public Stopwatch Sw = new Stopwatch(); 

    public Action<Car> ShapeClicked; 

    public Car(int ArriT, Action<Car> shapeClicked) 
    { 
     ArrivalTime = ArriT; 
     this.ShapeClicked = shapeClicked; 

     Car_Shape.Click += (sd,args) => 
     { 
      if (Clicked != null) 
       Clicked(this); 
     }; 

    } 
    public void SetDelay() 
    { 
    } 
} 

使用するには簡単です:

Car car = new Car(0, OnShapeClicked); 

public void OnShapeClicked(Car car) 
{ 
    MessageBox.Show(car.Direction); 
} 

または

Car car = new Car(0, (c) => 
{ 
    MessageBox.Show(c.Direction); 
});