0

まず、フォーム 1 のコンボボックス 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

同じアイテムを含む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);
  ...
}

このようにして、異なるフォーム間の結合を防ぎ、リストに含まれる値を導出する場所が1つだけになります。

于 2012-09-11T12:24:04.670 に答える