如何在每次单击 winforms 时将按钮的文本设置为打开和关闭?

How to set text of Button as ON and OFF on each click in winforms?

我正在开发 winform 应用程序。我有一个 button,它的默认文本是 ON。现在,当我单击按钮时,如果我再次单击该按钮,其文本应更改为 OFF。是文本应该改回 ON 。我不知道该怎么做,我使用了 counter 逻辑。但我不确定,也不太舒服。

还有一件事。如果文本是 ON 那么员工可以收到通知。所以 accept_notf = 1 如果文本是 OFF 员工将无法收到通知。所以 accept_notf =0

我已经试过了。:

private void btnNotification_Click(object sender, EventArgs e)
{
    var btn = sender as Button;
    if (btn != null)
    {
        if (btn.Text == "ON")
        {
            accept_notif = "1";
            btn.Text = "OFF";
        }
        else  (btn.Text == "OFF")
        {
            accept_notif = "0";
            btn.Text = "ON";
        }
    }
}

将默认文本设置为 "ON",单击按钮时,如果文本为 "ON",则将其设置为 "OFF",否则将其设置为 "ON"

private void btnNotification_Click(object sender, EventArgs e)
{
    var btn = sender as Button;
    if (btn != null)
    {
        if (btn.Text == "ON")
        {
            btn.Text = "OFF";
            accept_notif = "0";
        }
        else if (btn.Text == "OFF")
        {
            btn.Text = "ON";
            accept_notif = "1";
        }
    }
}

在您的点击处理程序方法中,您应该检查按钮的文本是 "ON" 还是 "OFF"(因为更改取决于此)。

例如像这样:

if ((sender as Button).Text == "ON")
    (sender as Button).Text = "OFF";
else
    (sender as Button).Text = "ON";

...
or you can create a variable and work with that:
Button tmpButton = (sender as Button);

或者您可以直接使用 按钮 本身来访问其文本(当只有 1 个按钮时,我更喜欢这种方式)。

if (btnStatusIndicator.Text == "ON")
{
    btnStatusIndicator.Text = "OFF";
    acceptNotif = 0; // learn camelCase when you write C# code! :)
}
else
{
    btnStatusIndicator.Text = "ON";
    acceptNotif = 1;
}

并且如果程序允许的值不仅仅是 ON 或 OFF,您可以使用 switch 语句来确定文本(这样您就可以准备您的程序来处理其他情况,当文本既不是 ON 也不是 OFF 时)。

switch (btnStatusIndicator.Text)
{
    case "OFF": ... break;
    case "ON": ... break;
    case "your other value": ... break;
    case "your other value": ... break;
    case "your other value": ... break;
    default: ... break;
}

很简单。首先,在我们的事件处理程序中,我们从事件参数中获取按钮实例并将其向下转换回按钮类型。然后我们使用条件运算符来确定它是否设置为 "ON" 如果是这样我们将其设置为 "OFF" 否则(运算符':')我们将其设置为 "ON"

private void btnNotification_Click(object sender, EventArgs e)
{
    var button = sender as Button;
    if (button == null) return;       
    button.Text = button.Text == "ON"? "OFF" : "ON";
    accept_notf = button.Text == "ON"? 1 : 0;
}