none
ComboBox 绑定数据源后是否能屏蔽默认选择数据源的第一项数据? RRS feed

  • 问题

  • 我想实现在comboBox中进行搜索,筛选下拉列表中显示的数据,当TextChanged事件触发后,重新绑定ComboBox 的数据源,并指定DisplayMember属性。

    ComboBox的文本框中我输入的搜索条件则被绑定的数据源的第一项覆盖了,请问有没有什么办法能屏蔽ComboBox绑定数据源后,默认选择数据源第一项的功能,并保持我输入的搜索条件

    2011年5月20日 9:19

全部回复

  • 你需要在绑定前纪录这个值,在绑定完成后,填写回去。

    一般重新绑定都会清理原来的数据内容的。

     


    family as water
    2011年5月21日 5:34
  • 我写了个DEMO,看看能否满足你的要求

      public partial class Form7 : Form
      {
        public Form7()
        {
          InitializeComponent();
        }
        string strCon = "server=.;uid=sa;pwd=123;database=msdb;Min Pool Size=10;";
        private void comboBox1_TextChanged(object sender, EventArgs e)
        {
    
          string strSql = " select * from subjeict where name like '" + comboBox1.Text.ToString() + "%'";
    
          DataSet ds = GetDS(strSql);
    
          string[] aa = null;
          aa = new string[ds.Tables[0].Rows.Count];
    
          for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
          {
            aa[i] = ds.Tables[0].Rows[i]["name"].ToString();
          }
    
          this.comboBox1.AutoCompleteCustomSource.AddRange(aa);
       
          this.comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
          this.comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
    
          comboBox1.SelectionStart = comboBox1.Text.Length;
    
        }
    
        public DataSet GetDS(string str)
        {
          SqlConnection con = new SqlConnection(strCon);
          con.Open();
          SqlCommand cmd = new SqlCommand(str, con);
          SqlDataAdapter adp = new SqlDataAdapter(cmd);
          DataSet ds = new DataSet();
          adp.Fill(ds);
          return ds;
        }
    
        private void Form7_Load(object sender, EventArgs e)
        {
        
          this.comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
         
        }
    
       
      }
    

    http://blog.csdn.net/zx13525079024
    2011年5月22日 10:18
  • 您好 您的回复我看了,我想可能是我没描述清楚。我在ComboBox里面绑定的是多列的值,显示的是表格样式的,所以必须得指定DisplayMember ,这样的话 它就会自动绑定数据源第一项,会触发TextChanged事件,会将我之前的收索条件被清空。如果您方便的话,能不能加我QQ416427732
    2011年5月22日 11:27
  • Hi 抽屉里的月光,
    关于你的需求进展如何, 如果问题得不到解决的话可以在下面这个英文论坛发帖:
    Windows Forms General Forum.
    Leo Liu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年5月25日 10:03
    版主