原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(); 再查询绑定。