我试图在每次点击时更改按钮的文本.
按钮开始为"ON".当我第一次点击它时它应该变为"OFF",当我再次点击它时,它应该变回On.
我了解如何在点击时将其更改为"关闭",但我不确定如何检查次要点击,以便我可以将文本更改回"开启".
到目前为止,这是我的代码:
private void OrdersButton_Click(object sender, EventArgs e)
{
OrdersButton.Text = " Turn Orders Off";
}
Run Code Online (Sandbox Code Playgroud)
Pyr*_*cer 15
尝试
private void OrdersButton_Click(object sender, EventArgs e)
{
if (OrdersButton.Text == "Turn Orders On")
{
OrdersButton.Text = "Turn Orders Off";
}
else if (OrdersButton.Text == "Turn Orders Off")
{
OrdersButton.Text = "Turn Orders On";
}
}
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助.
小智 12
我可以看到几个可能的问题,并可以提供更面向对象的解决方案:添加一个跟踪当前"状态"的属性:
private bool _IsOn;
public bool IsOn
{
get
{
return _IsOn;
}
set
{
_IsOn = value;
OrdersButton.Text = _IsOn ? "On" : "Off";
}
}
Run Code Online (Sandbox Code Playgroud)
并使用事件处理程序简单地切换属性:
private void OrdersButton_Click(object sender, EventArgs e)
{
IsOn = !IsOn;
}
Run Code Online (Sandbox Code Playgroud)
这样,以后更容易访问信息,您可以轻松地用您喜欢的任何内容替换开/关 - 甚至可以根据需要进行全局化/本地化.我认为让代码依赖于显示器上的文本是一种非常糟糕的编程习惯......
编辑:此外,不会使用复选框或togglebutton更有意义?除了视觉表现形式不同之外,它可以实现您想要的开箱即用......