たとえば、次のように定義された独自のデータ クラスがあるとします。
public class MyData
{
public string v1;
public int v2;
//etc.
}
これを独自の Form 派生クラスに渡し、それを使用してフォーム コントロールを初期化できます。
public partial class MyForm : Form
{
private MyData dataIn;
public MyForm(MyData data)
{
InitializeComponent();
dataIn = data;
}
}
private void MyForm_Load(object sender, EventArgs e)
{
//Init controls in 'MyForm' from 'dataIn'
}
private void buttonSave_Click(object sender, EventArgs e)
{
//Save button was clicked
//Read data from 'MyForm', but
//how to return it back in 'MyData' class?
//Close form
this.DialogResult = System.Windows.Forms.DialogResult.OK;
this.Close();
}
そして、フォーム自体は次のように呼び出されます。
//Initial data for the form
MyData data = new MyData(){
v1 = "test",
v2 = 123
};
MyForm dlg = new MyForm(data);
if (dlg.ShowDialog() == DialogResult.OK)
{
//User clicked Save -- how to get data back in 'MyData'?
}
問題はMyData
、データを入力してから返す方法MyForm
です。