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