2012-09-13 183 views
0

我有一個窗體窗體,其中包含一個圖像的圖片框控件,我想要做的是將圖片框控件向右移動一個緩慢的運動。這裏是我的代碼:Winforms 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); 
     } 

這裏的問題是,當代碼執行,而不是看到一個畫面移動時,我看到了一個白色的畫面移動和移動停止出現的畫面。我不是什麼問題,胃口有什麼幫助。

Thank.s

回答

0

嘗試了Thread.Sleep後使用pictureBox_Logo.Refresh()(30); 或尋找標準的計時器控制。

+0

你是什麼意思標準的計時器控制? – ykh

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(); 
} 

}

原來的線程是在這裏Move images in C#

0

我的代碼實際上是寫的,但我做錯了什麼是事件將代碼:

private void Form1_Shown(object sender, EventArgs e); 

但是,當我把我的代碼放在一個按鈕的代碼工作沒有問題。