循环遍历选定项的所有列表框,并转移到一个列表框

本文关键字:列表 转移 一个 循环 遍历 | 更新日期: 2023-09-27 18:03:45

这是我目前所做的,看起来它将从每个列表框中收集正确数量的选定项,但不是输出选定项,而是反复输出第一个。

TabPage page = tabControl1.SelectedTab;
            var controls = page.Controls;
            foreach (var control in controls)
            {
                if (control is ListBox)
                {
                    ListBox listbox = control as ListBox;
                    foreach (var item2 in listbox.SelectedItems)
                    {
                        FilterColLB.Items.Add(ShipmentBox.SelectedItem);
                    }
                }
            }

循环遍历选定项的所有列表框,并转移到一个列表框

不要在循环中引用ShipmentBox.SelectedItem:

foreach (var item2 in listbox.SelectedItems)
{
    FilterColLB.Items.Add(item2);
}

我会这样做:

        foreach(ListBox lb in tabControl1.SelectedTab.Controls.OfType<ListBox>())
        {
            foreach(var item in lb.SelectedItems)
            {
                FilterColLB.Items.Add(item);
            }
        }