C#复选框CheckBox控件实现问题

CST08055 2012-03-24 02:01:18
想在C#窗体程序程序中,实现这样一个功能,首先在窗体上有一个GroupBox容器,GroupBox容器(GroupBox1.Text = "爱好")里有2个CheckBox(复选框)
CheckBox1.Text = "音乐";
CheckBox2.Text = "文学";
在GroupBox上面有一个Label控件,用来显示你选择的爱好

我是这样写的

private void checkBox1_CheckedChanged(
object sender,EventArgs e)
{ String text1=“你的爱好是:”;
//checkBox1是标题为"音乐"的多选框控件
if(checkBox1.Checked)
text1=text1+checkBox1.Text;
//checkBox2是标题为"文学"的多选框控件
if(checkBox2.Checked)
text1+=checkBox2.Text;
label1.Text=text1;
}


可是,这和我想实现的不同,我想实现的是只点击“音乐”时,Label控件显示“你的爱好是:音乐”
只点击“文学”时,Label控件显示“你的爱好是:文学”
同时点击“音乐”和“文学”时,显示“你的爱好是:音乐文学”
在“音乐”和“文学”都点击的情况下,取消点击“文学”。显示“你的爱好是:音乐”

我想了好久老是出现各种的重复或者不显示,求指导!
...全文
766 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
gSilenceQin 2012-03-24
  • 打赏
  • 举报
回复
需要每次触发点击事件都刷新一次Label
  • 打赏
  • 举报
回复
正确
我提供另一种方法,可以封装以备后用

private void showText(string title)
{
string str = string.Empty;
if (checkBox1.Checked && !checkBox2.Checked)
str = checkBox1.Text;
if (checkBox2.Checked && !checkBox1.Checked)
str = checkBox2.Text;
if (checkBox1.Checked && checkBox2.Checked)
str = checkBox1.Text + checkBox2.Text;
label1.Text = title + str;
}
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
showText("你的爱好是:");

}

private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
showText("你的爱好是:");
}
[Quote=引用 3 楼 lhonyun_lhy 的回复:]
C# code

private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
if (checkBox1.Checked)
label1.Text += checkBox1.Text;
else
……
[/Quote]
lhonyun_lhy 2012-03-24
  • 打赏
  • 举报
回复

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

private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
if (checkBox2.Checked)
label1.Text += checkBox2.Text;
else
{
label1.Text = label1.Text.Replace(checkBox2.Text,"");
}
}
www7788softcom 2012-03-24
  • 打赏
  • 举报
回复
String text1=“你的爱好是:”;
//checkBox1是标题为"音乐"的多选框控件
if(checkBox1.Checked && checkBox2.Checked)
text1=text1+checkBox1.Text+checkBox2.Text;
//checkBox2是标题为"文学"的多选框控件
else if(checkBox2.Checked)
text1+=checkBox2.Text;
else if(checkBox1.Checked)
text1+=checkBox1.Text;

label1.Text=text1;
  • 打赏
  • 举报
回复
用 if。。。。else 写 判断语句。

或者 switch....case...也行。

利用上面的判读语句决定你的代码的执行方向就行了。

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧