我的目标是让用户点击ComboBox
,在ComboBox
中输入文字,然后按Enter键并将该文字添加为列表中的项目。
我的主要问题是我不知道要使用什么事件。我已经浏览了所有这些内容,但我没有找到任何我认为适用于这种情况的内容。
除了ComboBox
之外,如果有更简单的方法可以执行此操作,请提及。
答案 0 :(得分:0)
如果您想在ComboBox
中添加项目,请尝试以这种方式添加ComboBox1.Items.Add(your_object);
示例:的
ComboBox1.Items.Add(TextBox1.Text);
您可以使用Button_Click
事件执行上述操作。
不确定是否要从数据库中检索添加的项目。如果是这样,那么您可以使用Databinding
将ComboBox绑定到数据源。
或强>
假设您正在使用来自数据库的数据加载ComboBox,您也可以这样做:
在DataSet
ds.tables[0].rows.add(TextBox1.Text);
更新DataSet
dataAdapter.update(ds);
重新加载ComboBox
,您将能够看到您输入的内容。
ComboBox1.datasource = ds;
所以,
private void button1_Click(object sender, EventArgs e)
{
string cs = "Data Source=ServerName; Initial Catalog=DatabaseName; Integrated Security=SSPI;";
string sql = "Your query goes here, i.e the info that you want to display in your ComboBox";
SqlConnection con = new SqlConnection(cs);
SqlDataAdapter dataAdapter = new SqlDataAdapter(sql,con);
try
{
con.Open();
Dataset ds = new DataSet();
ds.tables[0].rows.add(TextBox1.Text);
dataAdapter.update(ds);
ComboBox1.datasource = ds;
}
finally
{
con.Close();
}
}
答案 1 :(得分:0)
订阅KeyUp
活动以及用户键入时Enter
向Combobox
添加文字
comboBox1.KeyUp +=(comboBox1_KeyUp; // subscribe to an event.
private void comboBox1_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
comboBox1.Items.Add(comboBox1.Text); // Add
}
}
答案 2 :(得分:0)
private void comboBox1_KeyUp(object sender, KeyPressEventArgs e)
{
//if Enter (return) key is pressed
if (e.KeyChar == (char)13)
{
//don't add text if it's empty
if (comboBox1.Text != "")
{
for (int i = 0; i < comboBox1.Items.Count; i++)
{
//exit event if text already exists
if (comboBox1.Text == comboBox1.Items[i].ToString())
{
return;
}
}
//add item to comboBox1
comboBox1.Items.Add(comboBox1.Text);
}
}
}