C# 滚动时,多个相关组合框会导致错误

C# 滚动时,多个相关组合框会导致错误,c#,combobox,C#,Combobox,我已经创建了一个测试项目,它重新创建了我在一个程序中遇到的错误,我被告知要修复这个错误。您可以在(代码在底部)查看它 当我单击第二个组合框的picturebox按钮并使用鼠标中键向上滚动时,出现以下错误。这里的关键点是必须选择第一个组合框——这发生在您第一次启动应用程序时 此代码段中出现错误: private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { if (comboBox2.Se

我已经创建了一个测试项目,它重新创建了我在一个程序中遇到的错误,我被告知要修复这个错误。您可以在(代码在底部)查看它

当我单击第二个组合框的
picturebox
按钮并使用鼠标中键向上滚动时,出现以下错误。这里的关键点是必须选择第一个组合框——这发生在您第一次启动应用程序时

此代码段中出现错误:

private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
    {
        if (comboBox2.SelectedIndex <= 0)
        {
            comboBox3.SelectedIndex = 0;
            comboBox3.Items.Clear();
            comboBox3.Enabled = false;
        }

您可能正在尝试设置或使用所选项目的索引,而没有选择任何项目

选中combobox.selecteditems.count。如果为0,则退出例程。在组合框/列表框中,当所选索引被更改或项目被取消选择时,会发生这种情况。你基本上想检查每一个电话,如果没有选定的项目,唐;我不能和任何人一起工作。呼叫应该发生两次,在第二次呼叫时,将有选定的项目,您可以使用它们。

建议我应该能够随时获取选定的索引。将selectedIndex设置为-1也会显示相同的错误消息。组合框不是多选组合框,selectedItems成员不存在。(选择editem-does)
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ComboBoxTest
{
    public partial class Form1 : Form
    {
        public static int refillPrefix = 0;

        public Form1()
        {
            InitializeComponent();
            initComboBox();
            comboBox1.SelectedIndex = 1;
            comboBox2.SelectedIndex = 4;
            comboBox3.SelectedIndex = 5;
        }

        public void initComboBox()
        {
            comboBox1.Items.Clear();
            for (int x = 0; x < 15; ++x)
            {
                comboBox1.Items.Add("Test " + x.ToString());
            }
        }

        public void fillCombo2()
        {
            comboBox2.Items.Clear();
            for (int x = 0; x < 15; ++x)
            {
                comboBox2.Items.Add("Test " + refillPrefix.ToString() + "_" + x.ToString());
            }
            refillPrefix++;
        }

        public void fillCombo3()
        {
            for (int x = 0; x < 15; ++x)
            {
                comboBox3.Items.Add("Test " + refillPrefix.ToString() + "_" + x.ToString());
            }
            refillPrefix++;
        }

        private void comboBox1_Click(object sender, EventArgs e)
        {
            comboBox1.DroppedDown = !comboBox1.DroppedDown;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            comboBox1.DroppedDown = !comboBox1.DroppedDown;
        }

        private void pictureBox1_Click(object sender, EventArgs e)
        {
            comboBox2.DroppedDown = !comboBox2.DroppedDown;
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox1.SelectedIndex <= 0)
            {
                comboBox2.SelectedIndex = 0;
                comboBox2.Items.Clear();
                comboBox2.Enabled = false;
                pictureBox1.Enabled = false;
            }
            else
            {
                fillCombo2();
                comboBox2.Enabled = true;
                pictureBox1.Enabled = true;
            }
        }

        private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (comboBox2.SelectedIndex <= 0)
            {
                comboBox3.SelectedIndex = 0;
                comboBox3.Items.Clear();
                comboBox3.Enabled = false;
            }
            else
            {
                fillCombo3();
                comboBox3.Enabled = true;
            }
        }

        private void comboBox3_SelectedIndexChanged(object sender, EventArgs e)
        {

        }
    }
}