私は3つのフォームを持つC#で簡単なウィンドウアプリケーションを持っています。 最初のフォームはメインフォーム(その名前はFrmMain)、2番目はFrmData、3番目はFrmShowです。 メインフォーム(FrmMain)で、私は二番目の形式(FrmData)からインスタンスを作成して、それを示しています。作成者オブジェクトへのアクセス
public partial class FrmMain : Form
{
public Form FrmModifyData; //for FrmData
int PersonCode;
public FrmMain()
{
InitializeComponent();
}
private void btnShowDataForm_Click(object sender, EventArgs e)
{
FrmModifyData= new FrmData();
FrmModifyData.ShowDialog();
}
}
が、私はPersonCodeようFrmMainフィールドにFrmModifyDataからアクセスすることはできません。 クリエイターオブジェクトのフィールドにアクセスするにはどうすればよいですか?
注:私は初心者です。
ありがとうございました。
は、私が実際に、これを行うには、いくつかのデザインパターンがあると思います。親参照はおそらく子コンストラクタのパラメータであり、次のように呼び出すべきです: "new FrmData(this);" – Philippe
があるかもしれませんが、カプセル化の面では、より良いルート、IMOは、コントロールが必要とするデータのみを提供することです。コントロールは、親フレーム内のすべてのパブリックフィールド/メソッドにアクセスする必要はありません。子フレームが親フレームのメソッドを実行する必要がある場合、それらはおそらくカスタムイベント内にあるはずです。 –