當地板按鈕被電梯內的人員按下時,它會調用ChangeFloor方法來增加/減少所選電梯的水平。兩個參數傳遞給ChangeFloor函數;電梯的標籤(樓層指示器)和按鈕以通過btn.Name獲取他們所在的樓層。試圖實現一個計時器,但似乎無法讓它開始?通過工具欄創建'timer1'。如何在電梯中安裝定時器以延遲樓層更換?
private void FloorButtonClick(object sender, EventArgs e)
{
Button btn = (Button)sender;
if (Convert.ToInt16(btn.Name) > 40)
if (Convert.ToInt16(btn.Name) > 80)
if (Convert.ToInt16(btn.Name) > 120)
ChangeFloor(lblLiftFloor4, btn);
else
ChangeFloor(lblLiftFloor3, btn);
else
ChangeFloor(lblLiftFloor2, btn);
else
ChangeFloor(lblLiftFloor1, btn);
}
private void ChangeFloor(Label lift, Button btn)
{
int level = Convert.ToInt16(lift.Text);
int desired = Convert.ToInt16(btn.Tag);
while(level!=desired)
{
if (level > desired)
{
timer1.Start();
lift.Text = (--level).ToString();
}
else
{
timer1.Start();
lift.Text = (++level).ToString();
}
}
}
你有任何代碼處理定時器的'Elapsed'事件?作爲參考,[計時器文檔](http://msdn.microsoft.com/en-us/library/system.timers.timer(v = vs.110).aspx)。 'timer1.Start()'只是開始提高已經過的事件,你仍然需要處理它。 – JakeP
我試圖通過添加一個ElapsedEventHandler,但然後我想鏈接到ChangeFloor(標籤,按鈕),但它似乎並沒有工作 – matt9251