我想要一个像 -
这样的组合框功能组合框显示项目并具有自动完成功能,因为项目列表非常大。
我希望用户能够通过在具有自动完成功能的框中键入来从项目列表中选择一个值 - 如果用户键入了不在列表中的内容,则会自动选择可用值。
我不想将错误的文本发送到数据库。
此组合框可编辑,自动完成,但不接受可编辑值,用户必须通过键入内容在列表中选择....
private void FrmGroupCreation_Load(object sender, EventArgs e)
{
string con = ConfigurationManager.ConnectionStrings["SaiCon"].ConnectionString;
using (SqlConnection connect=new SqlConnection(con))
{
//data table for combox type of account
SqlDataAdapter da = new SqlDataAdapter("SELECT *FROM dbo.Type_of_Account",connect);
DataTable dt=new DataTable();
da.Fill(dt);
for (int i = 0; i < dt.Rows.Count ; i++)
{
cbTypeofAccount.Items.Add(dt.Rows[i]["type_Of_Acct"]);
}
//data table for combobox principle account type
SqlDataAdapter da1 = new SqlDataAdapter("SELECT *FROM dbo.Principle_Account", connect);
DataTable dt1 = new DataTable();
da1.Fill(dt1);
for (int i = 0; i < dt1.Rows.Count; i++)
{
cbPrinciple_account_type.Items.Add(dt1.Rows[i]["Principle_Account"]);
}
//data table for combobox Under the group
SqlDataAdapter da2 = new SqlDataAdapter("SELECT *FROM dbo.Head_group_Account", connect);
DataTable dt2 = new DataTable();
da2.Fill(dt2);
for (int i = 0; i < dt2.Rows.Count; i++)
{
cbUnder_the_group.Items.Add(dt2.Rows[i]["Account_name"]);
}
}
}
答案 0 :(得分:1)
您必须执行以下操作:
1-而不是为循环填充组合框设置组合框数据源等于数据表并设置值成员和显示成员
cbTypeofAccount.DataSource = dt;
cbTypeofAccount.DisplayMember = "type_Of_Acct";
cbTypeofAccount.ValueMember = "your table id";
2-更改组合框的下拉样式以使其可编辑
cbTypeofAccount.DropDownStyle = ComboBoxStyle.DropDown;