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

求大神、小神帮忙!解决方法

2012-06-03 
求大神、小神帮忙!麻烦各位大神、小神:我想选中爱好后会出现在文本框,取消后所选中的爱好从文本消失 ,不影响

求大神、小神帮忙!

麻烦各位大神、小神:
  我想选中爱好后会出现在文本框,取消后所选中的爱好从文本消失 ,不影响其他爱好在文本框的显示,也就是说选了几个爱好在取消一个这个消失其他的不变;这代码该怎么写?
  我都搞一天了!没搞出来!初学者,各位大神、小神帮帮忙!

[解决办法]
假设控件为CheckedListBox

C# code
private void checkedListBox1_SelectedIndexChanged(object sender, EventArgs e)            {                this.textBox1.Text=string.Empty;                foreach (var item in this.checkedListBox1.CheckedItems)                {                    this.textBox1.Text += item.ToString() + "\r\n";                }            }
[解决办法]

所有Checkbox都调用这一个事件

private void checkBox4_Click(object sender, EventArgs e)
{
string txt = "";
foreach (Control item in Controls)
{
if (item is CheckBox)
{
if (((CheckBox)item).Checked)
txt += ((CheckBox)item).Text+"\r\n";
else
txt = txt.Replace(((CheckBox)item).Text, "");
}
}
richTextBox1.Text = txt;
}
[解决办法]
C# code
 List<string> hbs = new List<string>();        string hb = string.Empty;        private void checkBox1_CheckedChanged(object sender, EventArgs e)        {            hb = string.Empty;            if (this.checkBox1.Checked)                hbs.Add(this.checkBox1.Text);            else                hbs.Remove(this.checkBox1.Text);            foreach (string s in hbs)            {                hb += s;            }            this.textBox1.Text = hb;        }        private void checkBox2_CheckedChanged(object sender, EventArgs e)        {            hb = string.Empty;            if (this.checkBox2.Checked)                hbs.Add(this.checkBox2.Text);            else                hbs.Remove(this.checkBox2.Text);            foreach (string s in hbs)            {                hb += s;            }            this.textBox1.Text = hb;        }
[解决办法]
写完了,你看一下:
C# code
public partial class Form1 : Form    {        public Form1()        {            InitializeComponent();            //注意,所有的checkBox都绑定一个事件就可以了            checkBox1.CheckedChanged+=new EventHandler(checkBox1_CheckedChanged);            checkBox2.CheckStateChanged += new EventHandler(checkBox1_CheckedChanged);            checkBox3.CheckedChanged += new EventHandler(checkBox1_CheckedChanged);            checkBox4.CheckedChanged += new EventHandler(checkBox1_CheckedChanged);        }        List<string> list = new List<string>();        private void checkBox1_CheckedChanged(object sender, EventArgs e)        {            CheckBox cb = sender as CheckBox;            if (cb != null)            {                if (cb.Checked)                {                    list.Add(((CheckBox)sender).Text);                }                else                {                    list.Remove(((CheckBox)sender).Text);                }                ShowTxt(list);            }                   }               private void ShowTxt(List<string> list)        {            if (list == null || list.Count == 0) return;            StringBuilder str = new StringBuilder();            foreach (string s in list)            {                str.Append(s);                str.Append("\r\n");            }            textBox1.Text = str.ToString();        }    }
------解决方案--------------------


显示的方法要清空一下,否则第一项取消的时候没清空

C# code
private void ShowTxt(List<string> list)        {            textBox1.Clear();//清空文本框            if (list == null || list.Count == 0) return;                        StringBuilder str = new StringBuilder();            foreach (string s in list)            {                str.Append(s);                str.Append("\r\n");            }            textBox1.Text = str.ToString();        } 

热点排行