gpt4 book ai didi

c# - 获取表格的矩形

转载 作者:太空宇宙 更新时间:2023-11-03 19:48:27 26 4
gpt4 key购买 nike

我正在用 C# 制作汽车动画,想测试汽车是否仍在窗口中。我使用 Windows 窗体设计器创建了一个窗体。

我有一个汽车的矩形:

public Rectangle CarShape { get; set; }
...
CarShape = new Rectangle(Pos, new Size(28, 62));

还有我的 Form1 类(class):

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)) 进行检查

我怎样才能让窗口成为​​矩形,或者是否有更好的方法来测试汽车是否仍在窗口内?

最佳答案

问题一定是试图在定义中初始化变量。这样做:

1- 将变量声明为:

public Rectangle win { get; } 

2- 然后在表单的构造函数中:

public Form1()
{
InitializeComponent();
Startcars();
win = new Rectangle(new Point(0, 0), this.Size);
}

正如@Lithium 在评论中所说,您不应该将 Window 命名为变量,因为它可能会造成混淆。遵循 Naming Conventions 始终是个好主意在 C# 中

编辑

您还应该使用 this.ClientRectangle而不是 this.Size(感谢 Reza Aghaei 指出。

关于c# - 获取表格的矩形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42576134/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com