组合框事件触发了更改

假设我有一个C#.NET Windows窗体应用程序,它带有一个ComboBox,用于选择字符串值并接受新值的输入。

什么时候触发事件处理方法最有效的方法是什么?

  • 选择组合框的预先存在的值,或者
  • 键入/输入组合框中新输入的值?
  • 我尝试过像SelectedIndexChanged事件这样的选项,但是当有新输入的值时,我似乎无法触发事件。 我会认为这是一个相当简单的事情,但我不确定。

    我可以捕捉Enter键,但这似乎是一个半破碎的假设,即这意味着更新。


    我会使用ComboBox_SelectedIndexChanged更改所选项目。

    我还会捕获ComboBox_Leave事件来检查项目是否是新的(不存在于列表中)。 这将满足从ComboBox切换焦点的Enter,Tab键和鼠标点击。

    另外请查看“可过滤的DataGridViews”,在网上有几个msdn和codeproject文章,这将有所帮助。


    不知道你的全部要求是什么,我质疑一个组合框是否适合于此。 我的第一个观察结果是,允许用户在飞行中输入新的组合框项目可能会打开潘多拉盒子。 我可以很容易地看到重复的项目从一个简单的拼写错误中发生的其他用户滑稽动作。 这将是一个令人头疼的问题。

    正如@Jeremy Thompson所建议的,连接组合框“离开”事件可能会有所帮助,您可以使用ComboBox.Text属性来获取用户输入的新文本,然后检查它是否已经存在并且不为空或为空,然后只需将其添加到组合框项目列表。 这应该可行,但我猜测可能有更好的方法来实现你的目标。 用户将在组合框中输入什么内容?

    private void comboBox1_Leave(object sender, EventArgs e) {
      string currentSelection = comboBox1.Text;
      if (currentSelection != null && currentSelection != "" && !comboBox1.Items.Contains(currentSelection)) {
        comboBox1.Items.Add(currentSelection);
      }
    }
    
    链接地址: http://www.djcxy.com/p/68601.html

    上一篇: ComboBox Event Triggered for the Change

    下一篇: how to choose a value from combobox and insert it into record in c#