c#按钮第二次单击,获取True,False的简单方法?

c# Button clicked second time, simpel way to get True, False?

我有一个按钮及其功能。当用户按下按钮时,一行文本框将其背景颜色更改为灰色。当用户再次按下按钮时,线条变回白色。但是我的解决方案太复杂了,我认为有一种更舒适的方法可以做到这一点。 这是我的代码:

 private void btnTitelRow2_Click(object sender, EventArgs e)
    {
        bool isTitel = true;
        bool checkStatus = CheckTitelStatus(row: 1);
        if (checkStatus == true)
        {
            isTitel = false;
        }
        fncLOITitelrow(row: 1, isTitel: isTitel);
    }



    public bool CheckTitelStatus(int row)
    {
        bool labelStatus = false;
        Color dimgray = System.Drawing.Color.LightGray;
        Color white = System.Drawing.Color.White;

        Label[] Titelbl = getLOILabelTitel();
        if (Titelbl[row].BackColor == white)
        {
            labelStatus = false;
            return labelStatus;
        }
        if (Titelbl[row].BackColor == dimgray)
        {
            labelStatus = true;
            return labelStatus;
        }
        else
        { return labelStatus; }

函数 LOITitelrow 是改变文本框行颜色的函数。 我认为我需要的是一种简单的方法,可以在第一次单击按钮时为我提供 true,在第二次按下该按钮时为 false。第 3 次为真,依此类推...

有什么想法吗?

private void btnTitelRow2_Click(object sender, EventArgs e)
{
    const int row = 1;
    fncLOITitelrow(row, CheckTitelStatus(row));
}

public bool CheckTitelStatus(int row)
{
    Label[] Titelbl = getLOILabelTitel();
    return Titelbl[row].BackColor == System.Drawing.Color.LightGray;
}

您正在编写大量冗余代码,例如将布尔值与真值进行比较。 CheckTitelStatus return 的结果是一个布尔值,而 if 语句需要一个布尔值,因此您可以只使用 CheckTitelStatus 的 return 值。此外,在您的 CheckTitelStatus 中,您可以只检查 BackColor 当前是否为 LightGray,而不是检查每种颜色。