C#在标签上的文本发生更改时取消选中文本框

时间:2015-10-16 03:06:40

标签: c# winforms

当标签上的文字发生变化时,如何单独取消选中复选框?

private void checkBox1_CheckedChanged(object sender, EventArgs e)
    {
        if(Price.Text == "?" ){ checkBox1.Checked = false}
    }

我不知道应该把什么放在“?”

3 个答案:

答案 0 :(得分:3)

您应该处理标签的For Each ws In ActiveWorkbook.Worksheets Set rng = ws.Range("A1:C500") rng.Value = rng.Value Next ws 事件:

TextChanged

答案 1 :(得分:0)

创建一个公共bool类型变量

public bool DirtyBool = false;

无论您何时编写了更改标签值的代码,您都可以像这样创建一个类型为bool的新变量。

DirtyBool = true;

你可以这样做

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    if(DirtyBool){ checkBox1.Checked = false; }
}

BTW CheckedChanged事件只有在选中或取消选中复选框时才会被触发,因此@Reza Aghaei提供的答案将更适合您的情况。

答案 2 :(得分:0)

您在CheckBox.CheckedChanged事件中触发了检查检查。您必须在Label的TextChanged事件中触发它。 Reza的答案不完整,所以你应该这样做:

YourLabel.TextChanged += (s, e) =>
{
if(YourLabel.Text == "?") yourCheckBox.Checked = false;
else yourCheckBox.Checked = true;
};