0

首先,我将修饰符属性设置为 form1 上组合框 1 的“内部”。

我使用了以下代码:

form1 f1 = new form1();
object[] obj = new object[f1.comboBox1.Items.Count];
f1.comboBox.Items.CopyTo(obj, 0);
comboBox2.Items.AddRange(obj);`

这是最好的方法吗?

PS:我做不到:在 Windows 窗体中访问另一个窗体上的控件的最佳方法?去工作。

PPS:公开控制不是我喜欢的,也不是我喜欢的。

4

1 回答 1

2

如果您想要两个包含相同项目的下拉列表,最好将这些项目存储在公共位置并从那里建立两个组合框。

例如

public class Context{
  ...
  ...
  public List<Foo> FooItems {
    get{...}
  }
}

public class Form1 {
  ...
  combobox.AddRange(this.context.FooItems);
  ...
}

public class Form2 {
  ...
  combobox.AddRange(this.context.FooItems);
  ...
}

通过这种方式,您可以防止不同表单之间的耦合,并且仍然只有一个位置可以导出列表中的值。

于 2012-09-11T12:24:04.670 回答