首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

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

2012-04-04 
C#复选框CheckBox控件实现问题想在C#窗体程序程序中,实现这样一个功能,首先在窗体上有一个GroupBox容器,Gr

C#复选框CheckBox控件实现问题
想在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("你的爱好是:");        } 

热点排行