我有四個按鈕被稱爲「ship1,ship2」等。 我希望他們移動到窗體的右側(以相同的速度和同時開始),並且每次我點擊一個「船」時,所有的船隻都應該停下來。我知道我需要使用一個計時器(我已經編寫了使用線程的代碼,但是在停止船隻時它給了我麻煩)。我不知道如何使用計時器。我不知道如何使用計時器。我不知道如何使用計時器。我不知道如何使用計時器。使用定時器移動按鈕
我試圖讀取MDSN中的定時器信息,但我不理解它。 那麼你能幫助我嗎?
HERES使用線程的代碼。 我不想使用它。我需要使用定時器! (我張貼在這裏,因爲它不給我後,沒有任何代碼
private bool flag = false;
Thread thr;
public Form1()
{
InitializeComponent();
}
private void button2_Click(object sender, EventArgs e)
{
flag = false;
thr = new Thread(Go);
thr.Start();
}
private delegate void moveBd(Button btn);
void moveButton(Button btn)
{
int x = btn.Location.X;
int y = btn.Location.Y;
btn.Location = new Point(x + 1, y);
}
private void Go()
{
while (((ship1.Location.X + ship1.Size.Width) < this.Size.Width)&&(flag==false))
{
Invoke(new moveBd(moveButton), ship1);
Thread.Sleep(10);
}
MessageBox.Show("U LOOSE");
}
private void button1_Click(object sender, EventArgs e)
{
flag = true;
}
這似乎是作業\分配。如果是,我會更新你的標籤。 – zeencat 2012-08-02 15:30:12
哇。你不能點擊這樣的按鈕。您正在阻止作爲UI線程的主線程。使用[timer](http://msdn.microsoft.com/en-us/library/system.timers.timer(v = vs.71).aspx)與已用事件。問題在於,除非你有一個很短的'Interval',比如0.04秒(25 FPS),否則你不會得到流暢的運動。如果您正在製作遊戲,請查看[XNA](http://www.xnadevelopment.com/index.shtml) – musefan 2012-08-02 15:37:16
@ zeencat它不是。我正在嘗試構建一款遊戲。 – Noam650 2012-08-02 16:10:58