0

こんにちは皆さん、答えを探しましたが、役立つ特定の答えが見つかりませんでした。だから私はこの質問をしています。

私の質問は、ピクチャボックスがウィンドウまたはフォームの外に移動したかどうかをどのように検出するかです。

タイマーの各ティックは次のことを行います。

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  

助けてください、ありがとう

4

2 に答える 2

0

これが1つの方法です...

    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;
        }
    }
于 2013-10-28T12:52:56.897 に答える