ComboBox去掉重复行的方法

原URL:http://blog.csdn.net/pengfeixiong/article/details/7106049

方法1

        int count=comboBox1.Items.Count;
         int i;
            for (i = 0; i < count; i++)
            {
                string str = comboBox1.Items[i].ToString();
                for (int j=i+1; j < count; j++)
                {
                    string str1 = comboBox1.Items[j].ToString();
                    if (str1 == str)
                    {
                        comboBox1.Items.RemoveAt(j);
                        count--;
                        j--;
                    }
                }
            }
或者
 for(int i=0; i <this.comboBox1.Items.Count;i++) 
            { 
            for(int j=1; j <this.comboBox1.Items.Count-1;j++) 
            { 
            if(this.comboBox1.Items[i].ToString() == 
            this.comboBox1.Items[j].ToString()) 
            { 
            this.comboBox1.Items.Remove(this.comboBox1.Items[j]); 
            } 
            } 
            }
方法2

 查阅MSDN,了解到AddString的返回值是(如果add成功的话)是加入串在ComboBox中以基于0的一个int数值。而当你加入ComboBox控件的时候如果选择了Sort功能,加入的串就会自动排列,这个时候,如果你曾经加入过一个相同的值,那么你新加入的这个值就会出现在原来值的前面。举个例子,比如之前你曾经加入一个人名“宋江”到人物列表中,并且它的位置是  8,那么你再次加入“宋江”的时候,它的返回值就应该是 8 ,即原来的“宋江”被踢到了第9位。 根据这个原理,使用以下简单的代码就可以实现ComboBox的过滤功能。 CString username[MAX];

Cstring strNextName;

CComboBox m_cbUserList;

for(int ii=0; ii<MAX; ii++)

{

    int iAddIndex = m_cbUserList.AddString(username[ii]);

    if(iAddInex == m_cbUserList.GetCount()-1)  //overflow

         continue;

    m_cbUserList.GetLBText(iAddIndex+1, strNextName);

    if(strNextName == username[ii])

         m_cbUserList.DeleteString(iAddIndex);

} 备注: 在按钮操作中 cmb.Iteams.Clear(); 再查询绑定。

 

没有更多推荐了,返回首页