c #Revert on复选框未选中

时间:2015-01-25 16:12:48

标签: c# checkbox return unchecked

我的目标是取消选中复选框,让label1在选中复选框之前返回其值。

 private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        {
            if
              (checkBox1.Checked)
                label1.Text = textBox1.Text + label1.Text;

            else

                label1.Text = label1.Text; //return to previous value?
        }
    }

上面提到的方式,标签1'棍棒'取消选中复选框时的值。

我尝试使用label1.Refresh,但它没有用。

是否有更有效的方法来获得我正在寻找的结果?

2 个答案:

答案 0 :(得分:1)

在更新之前保存该值。然后在未选中时恢复。

private string _lastValue = string.Empty;
    private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        {
            if
                (checkBox1.Checked)
            {
                _lastValue = label1.Text;
                label1.Text = textBox1.Text + label1.Text;
            }

            else

                label1.Text = _lastValue;
        }
    }

答案 1 :(得分:0)

只需使用变量来存储标签的先前值。

string DefaultLabelValue="";

private void Form1_Load(object sender, EventArgs e)
{
    DefaultLabelValue=lable1.Text;
}

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    if (checkBox1.Checked)
        label1.Text = textBox1.Text + label1.Text;
    else
        label1.Text = DefautLabelValue;
}