Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C语言中的一个标签和3个复选框_C# - Fatal编程技术网

C# C语言中的一个标签和3个复选框

C# C语言中的一个标签和3个复选框,c#,C#,我的项目有问题,我有一个标签和三个复选框。我想要的是,如果我取消选中其中一个复选框,则清除一个标签文本。我的代码的问题是,如果我取消选中其中一个复选框,所有标签文本都将被清除 private void checkBox1_CheckedChanged(object sender, EventArgs e) { CheckBox c = (CheckBox)sender; if(checkBox1.Checked) { string lb1 = labe

我的项目有问题,我有一个标签和三个复选框。我想要的是,如果我取消选中其中一个复选框,则清除一个标签文本。我的代码的问题是,如果我取消选中其中一个复选框,所有标签文本都将被清除

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{  
    CheckBox c = (CheckBox)sender;
    if(checkBox1.Checked)
    {
        string lb1 = label1.Text + c.Text + "@";
        lb1 = lb1.Replace("@", Environment.NewLine);
        label1.Text = lb1;
    }
    else 
    { 
        label1.Text = "";
    }

首先,您应该为复选框的每个
CheckedChanged
事件指定
CheckedChanged
事件处理程序。如果我了解您的问题,代码应如下所示:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
    label1.Text = (label1.Tag as string);
    if (checkBox1.Checked)
    {
        label1.Text += checkBox1.Text;
    }
    if (checkBox2.Checked)
    {
        label1.Text += checkBox2.Text;
    }
    if (checkBox3.Checked)
    {
        label1.Text += checkBox3.Text;
    }
    label1 += Environment.NewLine;
}
label1.Tag
存储
label1.Text
的初始值。应该在主窗口的
Load
事件中指定它:

label1.Tag = label.Text;
这个怎么样:

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{  
    CheckBox c = (CheckBox)sender;
    if(checkBox1.Checked)
    {
        string lb1 = label1.Text + c.Text + "@";
        lb1 = lb1.Replace("@", Environment.NewLine);
        label1.Text = lb1;
    }
    else 
    {
        string str = c.Text + "@";
        str = str.Replace("@", Environment.NewLine);
        label1.Text = label1.Text.Replace(str, "");
    }

对不起。但我得到了同样的结果。我想要的是,如果我取消选中其中一个复选框,则只有未选中的框属性是“删除而不是所有文本”。我有3个复选框,每个复选框有1条文本消息。输出转到label1.Text。@navabvillordon更新了我的答案。你的问题真的很难理解。但在您的代码中,所写的内容与您描述的完全相同:如果未选中复选框1->标签文本为空,我想要的是,如果未选中其中一个复选框,则只有未选中的框属性是“删除而不是所有文本”。我有3个复选框,每个复选框有1条文本消息。输出通过label1.Text