如何使用C#在运行时向ComboBox添加项目

时间:2016-06-17 01:25:28

标签: c# winforms combobox

我的目标是让用户点击ComboBox,在ComboBox中输入文字,然后按Enter键并将该文字添加为列表中的项目。

我的主要问题是我不知道要使用什么事件。我已经浏览了所有这些内容,但我没有找到任何我认为适用于这种情况的内容。

除了ComboBox之外,如果有更简单的方法可以执行此操作,请提及。

3 个答案:

答案 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活动以及用户键入时EnterCombobox添加文字

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);
        }
    }
}