2 回答

TA贡献1793条经验 获得超6个赞
当您想在某些 cklicked 状态和未单击状态之间切换时,您需要class中的成员,而不是仅存在于方法中的变量:
class MyClass
{
bool foo;
private void button1_Click(object sender, EventArgs e)
{
if (this.foo)
{
label1.Text = "GOOD";
this.foo=false;
}
else
{
label1.Text = "BAD";
this.foo = true;
}
}
}
另请注意,我省略了 ,else if因为 bool 只能有两种状态:true或false. 第三种情况是没有办法的。因此,与第一个条件不匹配的所有内容都会自动匹配第二个条件,您无需(再次)测试布尔值。

TA贡献1799条经验 获得超9个赞
如果你想将label1.Textfrom切换GOOD到BAD你可以尝试一个简单的 turnary 运算符:
private void button1_Click(object sender, EventArgs e)
{
label1.Text = string.Equals("GOOD", label1.Text, StringComparison.OrdinalIgnoreCase)
? "BAD"
: "GOOD";
}
如果您想要更详细的解决方案,让我们提取一个属性,例如:
public bool IsGood {
get {
// Simplest implementation; often adding a backing field is a good idea
return label1.Text = string
.Equals("GOOD", label1.Text, StringComparison.OrdinalIgnoreCase);
}
set {
label1.Text = value ? "GOOD" : "BAD";
}
}
然后点击事件
private void button1_Click(object sender, EventArgs e) {
IsGood = !IsGood;
}
- 2 回答
- 0 关注
- 79 浏览
添加回答
举报