C#将焦点放在按钮上/使其处于活动状态

时间:2012-10-23 17:00:37

标签: c# button focus

我正在用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不起作用并给出错误:/

错误=错误1无法分配给'焦点',因为它是'方法组'C:\ Users \ Mave \ Desktop \ SnakeGame \ Form1.cs 271 7 SnakeGame

2 个答案:

答案 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?
}

答案 1 :(得分:1)

在你的代码中,你试图将焦点放在你在前一行中不可见的控件上......而且,编译器告诉你Focus是一个方法,并且你正在尝试使用它作为一种财产。

我会以不同的方式执行此操作:

只需一个名为btnStartPauseResume的按钮...并在点击事件中:

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
    }
}