Ich arbeite an einer Auto-Animation in C# und möchte testen, ob das Auto noch im Fenster ist. Ich habe ein Formular mit dem Windows-Forms Designer erstellt.C# - Get Rectangle of Form
Ich habe ein Rechteck von dem Auto:
public Rectangle CarShape { get; set; }
...
CarShape = new Rectangle(Pos, new Size(28, 62));
Und meine Form1 Klasse:
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);
...
}
Hier erhalte ich die Fehlermeldung: „Eine Objektreferenz für das nicht-statische Feld erforderlich ist, Methode oder Eigenschaft 'Form.Size' ".
Ich habe es auch mit 'dieser' versucht, die in einer statischen Eigenschaft auch ungültig zu sein scheint. Wenn ich die Eigenschaft in nicht statisch ändere, wird dies im aktuellen Kontext ungültig.
Später werde ich es mit if(!Window.Contains(car.CarShape))
überprüfen Wie kann ich das Fenster als ein Rechteck erhalten oder gibt es eine bessere Art und Weise der Prüfung, ob das Auto noch innerhalb des Fensters ist?
Warum erklärt 'Window'as' static'? – Pikoh
Verwenden Sie nicht zuerst Window als den Namen Ihrer Eigenschaft, da es sich um eine allgemeine Klasse in winforms handelt, zweitens kann diese Eigenschaft nicht statisch sein, da die Klasse Form1 keine Größe hat, sondern die Instanz Die Klasse hat eine Größe, dann tu das, was Pikoh gesagt hat. " – Lithium
Wie kann ich die Instanz von Form1 bekommen? Muss ich eine ne machen? w Form1()? Vielleicht eine dumme Frage, aber ich bin neu in C# ... –