0

画像を含む PictureBox コントロールを持つ Windows フォーム アプリケーションがあります。PictureBox コントロールをゆっくり右に動かしたい。これが私のコードです:

        Point currentPoint = pictureBox_Logo.Location; 
        for (int i = 0; i < 25; i++)
        {
            pictureBox_Logo.Location = new Point(pictureBox_Logo.Location.X + 1, pictureBox_Logo.Location.Y);
            Thread.Sleep(30);
        }

ここでの問題は、画像が動くのではなくコードが実行されると、白い画像が移動し、画像が表示されるまで移動が停止することです。

私は何が欠けていて、それについて何ができますか?

4

3 に答える 3

1

コード:

public partial class Form1 : Form
{
    void timer_Tick(object sender, EventArgs e)
    {
        int x = pictureBox1.Location.X;
        int y = pictureBox1.Location.Y;

    pictureBox1.Location = new Point(x+25, y);

    if (x > this.Width)
        timer1.Stop();
}

public Form1()
{
    InitializeComponent();

    timer1.Interval = 10;
    timer1.Tick += new EventHandler(timer_Tick);
}

private void button1_Click(object sender, EventArgs e)
{
    pictureBox1.Show();
    timer1.Start();
 }

}

元のスレッドはこちらC# で画像を移動する

于 2012-09-13T08:23:12.133 に答える
0

Thread.Sleep(30); の後に pictureBox_Logo.Refresh() を使用してみてください。または、標準のタイマー コントロールを探します。

于 2012-09-13T08:21:50.293 に答える
0

私のコードはよく書かれていますが、私が間違っていたのは、コードをイベントに入れることでした:

private void Form1_Shown(object sender, EventArgs e);

しかし、コードをボタンに配置すると、問題なく動作します。

于 2012-09-13T08:27:45.283 に答える