子フォームから親フォームに情報を渡そうとしています。フォーラムで見つけた次のコードを使用して支援しています。
Form1.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace childform
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Form2 tempDialog = new Form2(this);
tempDialog.ShowDialog();
}
public void msgme()
{
MessageBox.Show("Parent Function Called");
}
}
}
Form2.cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace childform
{
public partial class Form2 : Form
{
private Form1 m_parent;
public Form2(Form1 frm1)
{
InitializeComponent();
m_parent = frm1;
}
private void button1_Click(object sender, EventArgs e)
{
m_parent.msgme();
}
}
}
これは機能し、すべてうまくいきます。問題は、私のプログラムでは、フォーム 1 から、button1_Click 以外のメソッドで tempDialog 内に変数を設定する必要があることです。しかし、これらは tempDialog のインスタンスを見つけることができません。これは、button1_click にあるためです。
また、「this」修飾子が Form1 を参照していないため、メソッドから (たとえば、クラスに) 移動することはできません...
Form2 から Form1 を参照する方法とその逆の方法はありますか? このコードを使用していますか?
ありがとう