0

重複の可能性:
フォーム間でのデータの受け渡し

Visual Studio 2012 と c# でのプログラミングは初めてなので、私の質問が些細なことでしたらすみません。

私は非常にいっぱいになっている form1 を持っているので、2 番目のフォーム (form2) を追加しました。それを表示するクリック ボタン イベントがありますが、フォーム間で情報を転送できません。ファイルForm1.csでは、Form2 について認識していないようです。その逆も同様です。

   private void button4_Click(object sender, EventArgs e)
   {
       OneDimLife.Form2 Form = new OneDimLife.Form2();
       Form.Show();
       //int i, j, N, M;
       //N = panel1.Width; M = panel1.Height;

   }

おそらく、form1 の panel1 を form2 の panel1 にコピーする必要があります (サイズが 3 倍になることもあります)。

4

2 に答える 2

3

そうしないでください。データを保持するクラスの共通インスタンスを用意します。各フォームに必要な部分を表示します。あなたが下っているルートは、最も些細な実装を除いて、常に混乱を招く混乱に終わります。

もちろん、インターフェースの方が良いでしょうが、それはあなたの将来に少し先の話です。

于 2012-09-03T21:26:17.853 に答える
1

最初のフォームのコードは次のとおりです ( SimpleForm):

        Form2 frm = new Form2();
        frm.SourceForm = this;
        frm.ShowDialog();

2 つ目のコード ( Form2):

public partial class Form2 : Form
{
    public SimpleForm SourceForm { get; set; }

    public Form2()
    {
        InitializeComponent();
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        //i'am changing Title property on first form...
        SourceForm.Text = "Changed title on SourceForm";
    }
}
于 2012-09-03T20:21:31.763 に答える