【问题标题】:Need to send two buttons backwards and forwards需要前后发送两个按钮
【发布时间】:2014-01-24 10:39:48
【问题描述】:

我得到了代码,一切似乎都是正确的,我已经对其进行了审查,但似乎不可能找出按钮没有按照其编码执行的操作的原因。我正在制作一个音乐播放器,当我按下播放按钮时,它将被发送到后面并且暂停按钮将变得可见,当我接下来单击暂停按钮时,什么也没有发生,它的主要功能停止一起工作。这是供人们检查的代码。

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();
}

【问题讨论】:

  • 可能太明显了 - 但已经检查了暂停按钮 OnClick 是否已连接到 btnPause_Click(...)?
  • 你试过调试吗?按钮是否连线?如果答案是肯定的,那么尝试将 Visibility 设置为 true 或 false,而不是使用 SendToBack() 和 BringToFront()。
  • @Jonny 辛苦了,谢谢 :) 总是忘记检查我的活动是否已连接

标签: c# winforms button visibility


【解决方案1】:

也许最好使用可见性?

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

甚至是 enabled 属性?

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

但是我觉得你可以通过让它成为同一个按钮并带有一个值来使它变得更好,所以如果它是播放器,则只需在其上设置一个值,如果它是暂停,则设置为 false,然后在点击事件中检查该值确定它当前是什么,然后执行相关功能并更改按钮上的文本或图像。

【讨论】:

  • 谢谢!可见性似乎不起作用,两个按钮都变得不可见,但我想尝试在按钮中有两个功能,并且在此之前使用的方法不起作用,但这听起来很安全,所以试一试: )
  • 请务必随时通知我 - 如果您需要帮助,请尽管询问,如果是答案,请不要忘记标记它:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多