私はC#でカーアニメーションを作成していますが、車がまだウィンドウにあるかどうかをテストします。 Windowsフォームデザイナでフォームを作成しました。C# - フォームの長方形を取得する
私は車の四角形を持っている:
public Rectangle CarShape { get; set; }
...
CarShape = new Rectangle(Pos, new Size(28, 62));
そして、私をForm1クラス:
ここpublic partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
Startcars();
}
//Here is my Question:
public static Rectangle Window { get; } = new Rectangle(new Point(0,0),Form1.Size);
...
}
私はエラーを取得する:「オブジェクト参照が非静的フィールドのために必要です、メソッド、またはプロパティ 'Form.Size' "。
「this」でも試しましたが、これは静的プロパティでも無効です。プロパティを非静的に変更すると、現在のコンテキストで無効になります。
その後、私はif(!Window.Contains(car.CarShape))
でそれをチェックするつもりはどのように長方形としてウィンドウを取得したり、車がウィンドウ内に残っている場合は、テストのより良い方法はありますか?
なぜ宣言 'Window'as' static'? – Pikoh
まず、winformsの共通クラスであるため、プロパティの名前としてWindowを使用しないでください。次に、Form1クラスにはサイズがないのでそのプロパティを静的にすることはできません。クラスにはサイズがありますし、Pikohが言ったことをしてください。 – Lithium
Form1のインスタンスを取得するにはどうしたらいいですか? w Form1()?たぶん愚かな質問ですが、私はC#の初心者です... –