1、一个县有若干个乡镇。一个乡镇,有若干个村。 村庄可能重名,乡镇不重名。2、现有两个LISTBOX,左边的LISTBOX,列举了一个乡镇的村庄名称。右边的LISTBOX,列举了我要检查的村庄名称。3、把左边的村庄弄到右边来,左边的LISTBOX没了。右边的LISTBOX增加。(这个功能已经实现,不用解答了)4、当点击另一个乡镇时,左边的LISTBOX要清空,新追加这个乡镇的村庄名称5、如果这个乡镇的村庄名与上一个乡镇(我选择过的,在右边的LISTBOX里)村庄重名。6、请把重名的村庄名,在左边的LISTBOX里靠上显示。不重名的,则依次追加。=======================
我弄了半天了,不知道使用什么方法,越搞越乱。求哪位心灵手巧的人,帮忙啊。  多谢了。

解决方案 »

  1.   

    ============================================================
    我是楼主,中午出去吃个饭,回来再想想,是这么解决的。谁还有更好的意见。
    ============================================================
          //初始值
            string[] jobinit = new string[] { "1", "f", "g", "4", "5", "6" };        private void button7_Click(object sender, EventArgs e)
            {
                //新的序列值
                string job1 = "b,c,d,e,a";
                //数组化
                string[] job = job1.Split(',');
                
                
                if (checkedListBox2.Items.Count == 0)
                {
                    //无检查
                    for (int i = 0; i < job.Length; i++)
                    {
                        //填入新的序列
                        checkedListBox1.Items.Add(job[i]);
                    }
                }
                else
                {
                    //有检查
                    string newstrList1 = "";                for (int i = 0; i <= checkedListBox2.Items.Count - 1; i++ )
                    {
                        //看看需要检查的项目名,是否有重名
                        if (job1.Contains(checkedListBox2.Items[i].ToString()))
                        {
                            //有重名,把新序列的重名值替换
                            job1 = job1.Replace(checkedListBox2.Items[i].ToString(), "-");
                            //有重名,把重名值连接一个串,逗号分隔
                            newstrList1 += checkedListBox2.Items[i].ToString() + ",";
                        }                }                //重名的值 + 已经新的序列(重名的值已经被替换成"-")
                    newstrList1 += job1;
                    Console.Write(newstrList1);
                    //做新数组
                    job = newstrList1.Split(',');                checkedListBox1.Items.Clear();
                    for (int i = 0; i < job.Length; i++)
                    {
                        //填充数值
                        if ("-".Equals(job[i]))
                        { }
                        else { checkedListBox1.Items.Add(job[i]); }
                    }
                }
            }
      

  2.   

    for (int i = 0; i <= checkedListBox2.Items.Count - 1; i++ )
    其他的没仔细看,但这里为什么这么写...有什么说法???
      

  3.   

    右边的列表框里的值(就是需要检查的村庄名),用FOR循环遍历一遍,找出另一个乡镇是否有重名的村庄。