C#复选框CheckBox控件实现有关问题
C#复选框CheckBox控件实现问题
想在C#窗体程序程序中,实现这样一个功能,首先在窗体上有一个GroupBox容器,GroupBox容器(GroupBox1.Text = "爱好")里有2个CheckBox(复选框)
CheckBox1.Text = "音乐";
CheckBox2.Text = "文学";
在GroupBox上面有一个Label控件,用来显示你选择的爱好
我是这样写的:
可是,这和我想实现的不同,我想实现的是只点击“音乐”时,Label控件显示“你的爱好是:音乐”
只点击“文学”时,Label控件显示“你的爱好是:文学”
同时点击“音乐”和“文学”时,显示“你的爱好是:音乐文学”
在“音乐”和“文学”都点击的情况下,取消点击“文学”。显示“你的爱好是:音乐”
我想了好久老是出现各种的重复或者不显示,求指导!
------解决方案--------------------
想在C#窗体程序程序中,实现这样一个功能,首先在窗体上有一个GroupBox容器,GroupBox容器(GroupBox1.Text = "爱好")里有2个CheckBox(复选框)
CheckBox1.Text = "音乐";
CheckBox2.Text = "文学";
在GroupBox上面有一个Label控件,用来显示你选择的爱好
我是这样写的:
- C# code
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控件显示“你的爱好是:文学”
同时点击“音乐”和“文学”时,显示“你的爱好是:音乐文学”
在“音乐”和“文学”都点击的情况下,取消点击“文学”。显示“你的爱好是:音乐”
我想了好久老是出现各种的重复或者不显示,求指导!
------解决方案--------------------
- C# code
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,""); } }
------解决方案--------------------
正确
我提供另一种方法,可以封装以备后用
- C# code
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("你的爱好是:"); }