-1

簡単な質問があります。Form2 に「MyObject」という 2 つの変数を持つクラスを作成しました。ボタンを押すと、Form2 の変数が変更されます。私の質問は、Form1 で MyObject を取得する方法ですか? ここに私のサンプルコードがあります:

フォーム1

 public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 f = new Form2(this);

        f.ShowDialog();
        ??????? (how can I retrieve Myobject here?????) 
    }

フォーム2

public class MyObject
    {
        public int Value1 { get; set; }
        public int Value2 { get; set; }

    }
    public Form2(Form1 frm1)
    {
        InitializeComponent();

    }
    private void button1_Click(object sender, EventArgs e)
    {
        MyObject obj = new MyObject();
        obj.Value1 = 102;
        obj.Value2 = 50;
    }

みんな、ありがとう

4

2 に答える 2

1

これを行う

フォーム1

 public Form1()
 {
    InitializeComponent();
 }

 private void button1_Click(object sender, EventArgs e)
 {
    Form2 f = new Form2(this);

    f.ShowDialog();
    MyObject mo = f.GetMyObject;
 }

フォーム2

public Form2(Form1 frm1)
{
    InitializeComponent();
}

public MyObject GetMyObject 
{ 
    get
    {
        return obj;
    } 
}

MyObject obj;

private void button1_Click(object sender, EventArgs e)
{
    obj = new MyObject();
    obj.Value1 = 102;
    obj.Value2 = 50;
}

MyObject

public class MyObject
{
    public int Value1 { get; set; }
    public int Value2 { get; set; }

}
于 2012-08-14T19:32:52.097 に答える
1

MyObjectの中で定義してはいけませんForm2。それを独自のファイルに入れる必要があります。ほとんどの場合、各クラスに独自のファイルが必要です。

MyObjectまた、より適切な名前を付ける必要があります。それが実際に行う/保持するものをより説明するもの。

最後に、実際にデータを渡す簡単で効果的な方法の 1 つは、 on にプロパティを作成することForm2です。

public MyObject PropertyName {get; private set;}

(プロパティの名前をより適切なものに変更することを忘れないでください。)

Form2その後、次のように言って内部から設定できますProperyName = new MyObject();

Form1その後、 を使用して( を呼び出した後ShowDialog)からそのプロパティにアクセスできますf.PropertyName

于 2012-08-14T19:33:20.163 に答える