将组合框作为参数传递给窗体

本文关键字:参数传递 窗体 组合 | 更新日期: 2023-09-27 18:27:57

因此,我希望能够将组合框从一个表单传递到另一个表单,因为它是唯一保持不变的东西。当我这样做的时候,它通过得很好,有正确的项目,但是当我打开下拉菜单时没有项目,知道为什么吗?

将组合框作为参数传递给窗体

嗯,我不知道为什么,但你可以尝试做以下事情:与其只传入整个组合框,不如只传入上一个组合框中的项目,然后在您试图将其传递到的表单上创建一个新的组合框,然后用您以前作为参数传入的项目填充它。希望这能有所帮助!

我现在已经尝试过了,它现在包含了应该的项目

foreach (var loc in locations.Items)
    Location_Selector.Items.Add(loc.ToString());
Location_Selector.SelectedIndex = locations.SelectedIndex;

但是仅仅将一个组合框设置为与另一个相等是行不通的,这对我来说毫无意义

Location_Selector = locations;

传递这样的项目可能更容易:

        List<String> items = new List<string>();
        items.AddRange(comboBox1.Items.Cast<String>());
        int index = comboBox1.SelectedIndex;
        Form2 form2 = new Form2();
        form2.comboBox1.Items.AddRange(items.ToArray<object>());
        form2.comboBox1.SelectedIndex = index;
        form2.Show();

因此,您可以将项目添加到列表中,然后访问下一个表单上的组合框并将列表添加到其中。这也会复制所选索引。您可以复制组合框,但只复制项目更实用。