2012-10-23 35 views
2

我在C#中製作了一個蛇形遊戲,並且我有一個暫停和播放按鈕。問題是:這些按鈕都在完全相同的位置,所以我不能點擊開始我已經點擊後暫停(因爲它仍然有效)C#將焦點放在按鈕上/使其處於活動狀態

private void picBreak_Click(object sender, EventArgs e) 
{ 
    timer1.Stop(); 
    picBreak.Visible = false; 
    picStart.Visible = true; 
} 

private void picStart_Click(object sender, EventArgs e) 
{ 
    timer1.Start(); 
    picBreak.Visible = true; 
    picStart.Visible = false; 
    picStart.Focus = true; 
} 

的.Focus不起作用,並且給出了一個錯誤:/

ERROR =錯誤1無法分配給 '焦點',因爲它是一個 '方法組' C:\用戶\ MAVE \桌面\ SnakeGame \ Form1.cs中271 7 SnakeGame

+0

爲什麼不保持一個按鈕,每次將其重命名? – sybkar

+0

順便說一句 - 你正在試圖將你剛剛做出的一個按鈕集中在不可見的地方,而這根本不起作用。 –

回答

4

Control.Focus是一種方法,不是屬性。這應該是:

private void picStart_Click(object sender, EventArgs e) 
{ 
    timer1.Start(); 
    picBreak.Visible = true; 
    picStart.Visible = false; 
    picBreak.Focus(); // Focus picBreak here? 
} 
+0

真棒,它現在可以工作! – vlovystack

1

在代碼中,你試圖給焦點,你在前面的行不可見控制......此外,編譯器是告訴你,Focus是一種方法,你正試圖將其用作財產。

我會以不同的方式做到這一點:

剛打電話btnStartPauseResume ...在click事件一個按鈕:

private void btnStartPauseResume_Click(object sender, EventArgs e) 
{ 
    if (btnStartPause.Text == "start") 
    { 
     btnStartPause.Text == "pause"; 

     // code to start the game 
    } 
    else if (btnStartPause.Text == "pause") 
    { 
     btnStartPause.Text == "resume"; 

     // code to pause the game 
    } 
    else if (btnStartPause.Text == "resume") 
    { 
     btnStartPause.Text == "pause"; 

     // code to resume the game 
    } 
} 
相關問題