组合框AutoCompleteCustomSource C#
问题描述:
显示在组合框没有数据,更改两个属性 AutoCompleteMode ---- SuggestAppend和AutoCompleteSource --- CustomeSource码是什么我想组合框AutoCompleteCustomSource C#
SqlDataAdapter da = new SqlDataAdapter("SELECT Pname FROM product", con);
DataSet ds = new DataSet();
da.Fill(ds);
DataRow row = ds.Tables[0].NewRow();
row["Pname"] = -1;
row["Pname"] = "select Product";
ds.Tables[0].Rows.InsertAt(row, 0);
AutoCompleteStringCollection mycol = new AutoCompleteStringCollection();
DataTableReader dr = ds.Tables[0].CreateDataReader();
while(dr.Read())
{ mycol.Add(dr.GetString(0));
}
comboBox1.AutoCompleteCustomSource = mycol;
con.Close();
AutoCompleteStringCollection对象拥有所有的项目,但组合框显示没有
答
您需要设置这些属性:
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
下面是完整的代码。
AutoCompleteStringCollection mycol = new AutoCompleteStringCollection {
"Select product"
};
using (SqlConnection con = createconnection()) {
using (SqlCommand cmd = new SqlCommand ("SELECT Pname FROM product")) {
using (SqlDataReader reader = cmd.ExecuteReader()) {
while (reader.Read()) {
mycol.Add (Convert.ToString (reader[0]));
}
}
}
}
comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
comboBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
comboBox1.AutoCompleteCustomSource = mycol;
编辑: 我想你想显示在下拉,而不是自动完成的项目。在这种情况下,您需要添加项目。
comboBox1.Items.Add("Select product");
using (SqlConnection con = createconnection()) {
using (SqlCommand cmd = new SqlCommand ("SELECT Pname FROM product")) {
using (SqlDataReader reader = cmd.ExecuteReader()) {
while (reader.Read()) {
comboBox1.Items.Add (Convert.ToString (reader[0]));
}
}
}
}
你为什么这么辛苦地完成一项简单的任务? – Khan
PLZ建议任何其他方式显示组合框中的项目与自动完成 – zeeshan
我已经更新了答案...现在检查它。 – Khan