大家好,我已经找到了答案,但我找不到能帮到我的特定答案。所以我问这个问题。
我的问题是你如何检测你的图片框是否移出窗外或窗体。
我的计时器的每个刻度都会:
picturebox.Left += 10;
if (picturebox.Left > this.Width)
{
picturebox.Left = 0;
}
但是这段代码只是向右侧,只检测图片框是否在表格的右侧出现。
我试过做类似的事情让我说我正在将图片框移到左边并且它已经离开了屏幕,这是我得到的代码,这不会给出任何错误,但它会将我的图像移动得那么快
picturebox.Left -= 10;
if (picturebox.Left > this.width || picturebox.Left < this.Width)
{
picturebox.Left = 0;
}
这段代码对我来说也不起作用:
picturebox.Right < this.Width
请帮忙, 感谢
答案 0 :(得分:0)
这是一种方式......
private int direction = -1;
private void button1_Click(object sender, EventArgs e)
{
direction = direction * -1;
}
private void timer1_Tick(object sender, EventArgs e)
{
picturebox.Left += direction * 10;
if (!this.ClientRectangle.IntersectsWith(picturebox.Bounds))
{
if (direction == -1)
picturebox.Left = this.ClientRectangle.Width;
else
picturebox.Left = -picturebox.Width;
}
}
答案 1 :(得分:0)
试试这个。
private bool IsControlInsideClientArea(Control c)
{
return this.ClientRectangle.Contains(this.RectangleToClient(c.RectangleToScreen(c.ClientRectangle)));
}