CheckedListBox.SelectedItems.Count = 1?

Int*_*erd 3 c# arrays count checkedlistbox

在C#中,我检查了列表框,我需要将数据存储在数组中,但是当我启动将对象写入数组的事件时,我必须设置数组的大小,我自然设置为数量检查的项目.但是,对于我检查的两个列表框,检查的项目都是1,无论我检查多少.有人可以帮忙吗?

public partial class Form3 : Form
{
    public static object[] dtype;
    public static bool loaded = false;
    bool typeselecte = false;
    bool typeselectd = false;
    public Form3()
    {
        InitializeComponent();
    }

    private void Form3_Shown(object sender, EventArgs e)
    {
        if (loaded)
        {
            int counte = 0;
            int countd = 0;
            types1.Items.AddRange(dtype);
            types2.Items.AddRange(dtype);

            if (typeselecte)
            {
                for (int i = 0; i < types1.Items.Count; i++)
                {
                    if (i == Form1.enumber[counte])
                    {
                        types1.SelectedItems[i] = Form1.esearch[i];
                        counte++;
                    }
                }
            }

            if (typeselectd)
            {
                for (int j = 0; j < types2.Items.Count; j++)
                {
                    if (j == Form1.dnumber[countd])
                    {
                        types2.SelectedItems[j] = Form1.dsearch[j];
                        countd++;
                    }
                }
            }
        }
    }

    public void dtypes()
    {
        dtype = new object[types1.Items.Count];
        for (int i = 0; i < types1.Items.Count; i++)
        {
            dtype[i] = types1.Items[i];
        }
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (types1.SelectedItems.Count > 0)
            typeselecte = true;

        if (types2.SelectedItems.Count > 0)
            typeselectd = true;

        Form1.esearch = new object[types1.SelectedItems.Count];
        Form1.dsearch = new object[types2.SelectedItems.Count];
        Form1.enumber = new int[types1.SelectedItems.Count];
        Form1.dnumber = new int[types2.SelectedItems.Count];

        int counte = 0;
        int countd = 0;

        if (typeselecte)
        {
            for (int i = 0; i < types1.SelectedItems.Count; i++)
                Form1.esearch[i] = types1.SelectedItems[i];
        }

        if (typeselectd)
        {
            for (int j = 0; j < types2.SelectedItems.Count; j++)
                Form1.dsearch[j] = types2.SelectedItems[j];
        }

        if (typeselecte)
        {
            for (int k = 0; k < types1.Items.Count; k++)
            {
                if (Form1.esearch[k] == types1.Items[k])
                {
                    Form1.enumber[counte] = k;
                    counte++;
                }
                else
                {
                    k--;
                }
            }
        }

        if (typeselectd)
        {
            for (int l = 0; l < types2.Items.Count; l++)
            {
                if (Form1.dsearch[l] == types2.Items[l])
                {
                    Form1.dnumber[countd] = l;
                    countd++;
                }
                else
                {
                    l--;
                }
            }
        }
        this.Close();
    }
}
Run Code Online (Sandbox Code Playgroud)

Form1.esearch和dsearch是对象数组,其大小尚未被选中,而e和dnumber也是具有未知大小的int数组,我只是觉得不需要输入该代码.

Pad*_*dyD 6

我相信你需要使用该属性CheckedItems而不是SelectedItems.