需要向前和向后发送两个按钮

时间:2014-01-24 10:39:49

标签: c# winforms button visibility

我已经得到了代码,而且一切看起来都是正确的,我已经对它进行了审核,似乎无法找出为什么按钮没有执行其编码的操作。我正在制作一个音乐播放器,当我按下播放按钮时,它将被发送到后面并且暂停按钮将变为可见,当我下次单击暂停按钮时,没有任何反应,其主要功能将一起停止工作。以下是供人们检查的代码。

private void btnPlay_Click(object sender, EventArgs e)
{
    try
    {
        if (_mp3Player != null)
            _mp3Player.Play();

        btnPlay.SendToBack();
        btnPause.BringToFront();
    }
    catch (Win32Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

private void btnPause_Click(object sender, EventArgs e)
{
    if (_mp3Player != null)
        _mp3Player.Stop();

    btnPause.SendToBack();
    btnPlay.BringToFront();
}

1 个答案:

答案 0 :(得分:2)

也许最好使用可见性?

  private void btnPause_Click(object sender, EventArgs e)
  {
        if (_mp3Player != null)
        {
            _mp3Player.Stop();
        }
        btnPause.Visible = False;
        btnPlay.Visible = True;
  }

甚至是启用的属性?

  

... btnPause.Enabled = false; ...

但是我觉得你可以通过让它成为同一个按钮,使用一个值来改善它,所以如果它是播放器,则只有一个值为true;如果它是暂停的话,则为false,然后在click事件中检查该值确定当前的内容,然后执行相关功能并更改按钮上的文本或图像。