Form1から新たにForm2を作成したり、データを移動したりする。例えば、Form1で画像リスト作成して、そのリストをForm2で表示すると言った場合Form1とForm2の間でデータのやり取りしなければなりません。
①Form1からForm2を作る
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
Form2 f2; Form1クラスの中でForm2型を宣言する
}
一方Form1からForm2を呼び出したときにインスタンスを返せるようにform2クラスに次のコードを加える。
public static Form2 Instance
{
get
{
//_instanceがnullまたは破棄されているときは、
//新しくインスタンスを作成する
if (_instance == null || _instance.IsDisposed)
{
_instance = new Form2();
}
return _instance;
}
}
②Form1のデータをForm2へ移す
Form2の各contorl(button,listboxなど)においてプロパティー項目のデザインの覧のModifiersをprivateからpublicもしくはinternalへ選択し直すとアクセスできるようになります。この例では、Form2のcombobox1のModifiersをpublicに設定してください。次のコードをForm1.csに加えます。
f2 = Form2.Instance;
for (int j = 0; j < checkedListBox1.Items.Count; ++j)
{
string kakutyousi = Path.GetExtension(checkedListBox1.Items[j].ToString());
if (kakutyousi == ".bmp"
|| kakutyousi == ".jpg"
|| kakutyousi == ".JPG"
|| kakutyousi == ".tif"
|| kakutyousi == ".png"
|| kakutyousi == ".gif")
f2.comboBox1.Items.Add(checkedListBox1.Items[j]);
}
Form1のcheckedListBox1の画像リストをForm2のcomboBox1へ移したとこです。
コメント