组合框选定索引已更改事件为具有相同显示成员的项目触发两次

本文关键字:项目 成员 显示 两次 索引 事件 组合 | 更新日期: 2023-09-27 18:31:57

我有一个组合框,如下所示,包含3个项目("abc","abc"和"bbb")。组合框还具有AutoCompleteMode"SuggestAppend"和AutoCompleteSource"ListItems"属性。现在,我希望文本框显示组合框的选定索引,如下所示:

https://i.stack.imgur.com/X2TO6.png

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        this.textBox1.Text = this.comboBox1.SelectedIndex.ToString(); 
    }

一切似乎都很好,直到我选择第二个"abc",SelectedIndexChanged 事件将第一次进入并在文本框中正确显示索引。但是,当组合框失去焦点时,SelectedIndexChanged 事件将再次触发,从而导致索引显示错误。我发现它只发生在具有相同价值的物品上。有没有办法阻止事件触发两次?

https://i.stack.imgur.com/uazYI.png

            this.comboBox1.DataSource = dt;
            this.comboBox1.DisplayMember = "Description"; //Some descriptive field to be shown in combobox
            this.comboBox1.ValueMember = "Code"; //Unique code that user won't understand
            this.comboBox1.SelectedIndex = -1;

组合框选定索引已更改事件为具有相同显示成员的项目触发两次

comboBox1_SelectedIndexChanged代码

放在comboBox1_ValueChanged中,你会在事件参数中获取索引(发送者,即你的组合框在组合框中投射它)。

使用 comboBox1.SelectedIndex,您将获得索引。