Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 具有下拉列表属性的自动完成组合框_C#_.net_Sql Server_Winforms_Visual Studio 2010 - Fatal编程技术网

C# 具有下拉列表属性的自动完成组合框

C# 具有下拉列表属性的自动完成组合框,c#,.net,sql-server,winforms,visual-studio-2010,C#,.net,Sql Server,Winforms,Visual Studio 2010,我正在尝试在C中实现一个自动完成的组合框。当我将组合框下拉属性设置为“drop down”时,我可以这样做。但是当drop down属性设置为“drop list”时,无法获得结果。请帮我解决这个问题 这是我的密码: var connection=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\xxx.mdf;Integrated Security=True;Connect Timeout=30;Use

我正在尝试在C中实现一个自动完成的组合框。当我将组合框下拉属性设置为“drop down”时,我可以这样做。但是当drop down属性设置为“drop list”时,无法获得结果。请帮我解决这个问题

这是我的密码:

var connection=new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\xxx.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True");
            var command=new SqlCommand("SELECT model FROM vehicle",connection);
            var adapter=new SqlDataAdapter(command);
            var ds = new DataSet();
            adapter.Fill(ds);
            AutoCompleteStringCollection col = new AutoCompleteStringCollection();
            int i = 0;
            for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
            {
                col.Add(ds.Tables[0].Rows[i]["model"].ToString());
            }
            comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
            comboBox1.AutoCompleteCustomSource = col;
            comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;  

你可以试试这样的

 private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
            comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
            AutoCompleteStringCollection combData = new AutoCompleteStringCollection();
            getData(combData);
            comboBox1.AutoCompleteCustomSource = combData;
        }
        private void getData(AutoCompleteStringCollection dataCollection)
        {
            string connetionString = null;
            SqlConnection connection;
            SqlCommand command;
            SqlDataAdapter adapter = new SqlDataAdapter();
            DataSet ds = new DataSet();
            connetionString = @"Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\xxx.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True";
            string sql = "SELECT model FROM vehicle";
            connection = new SqlConnection(connetionString);
            try
            {
                connection.Open();
                command = new SqlCommand(sql, connection);
                adapter.SelectCommand = command;
                adapter.Fill(ds);
                adapter.Dispose();
                command.Dispose();
                connection.Close();
                foreach (DataRow row in ds.Tables[0].Rows)
                {
                    dataCollection.Add(row[0].ToString());
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Can not open connection ! ");
            }
        }

但是为什么我们要输入droplist?@utility ComboBox显示一个与列表框相结合的文本框,用户可以从列表中选择项目或输入新值。如果我没有弄错,OP想更改下拉列表的样式,但他担心如果他更改为下拉列表,其他人可以编辑并直接保存。您没有添加他的功能