2012-10-23 115 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 
    } 
} 
相关问题