0

私はビジュアルスタジオに2つのフォームを持っています.

form1 have textbox1.text
form2, have textbox2.text and btnSave

obs: フォーム 1 の別のボタンをクリックすると form2 が開きます:

Form new = new form2();
           nova.Show();

btnSave をクリックして、form2 から form1 (textbox1) に textbox2 コンテンツを送信するにはどうすればよいですか? このクリック ボタン イベント内で必要なコード。

ありがとう

4

3 に答える 3

3

これを試してください: ステップ 1: 以下のように form2 クラスのコンストラクターを作成します。

 public Form2(string strTextBox)
        {
            InitializeComponent();
            label1.Text = strTextBox;
        }

ステップ 2: 以下のように、form1 のボタン クリック イベント ハンドラで form2 クラスをインスタンス化します。

 private void button1_Click(object sender, EventArgs e)
        {
            Form2 obj1 = new Form2(textBox1.Text);
            obj1.Show();
            this.Hide();
        }
于 2013-04-25T20:14:05.057 に答える
1

フォームが保存されたときに起動できる 2 番目のフォームにイベントを作成します。

public event Action Saved;

次に、そのフォームに、テキスト ボックスのテキストにアクセスできるようにするプロパティを作成します。

public string SomeTextValue //TODO: rename to meaningful name
    { get{ return textbox2.Text;} }

Saved次に、フォームを保存するときにイベントを発生させる必要があります。

if(Saved != null)
    Saved();

次に、最初にフォームを作成するときにForm1、イベント ハンドラーをそのイベントにアタッチします。

Form2 child = new Form2();
child.Saved += () => textbox1.Text = child.SomeTextValue;
child.Show();

保存時に 2 番目のフォームも閉じている場合は、カスタム イベントは必要ありませんFormClosing。代わりに使用できます。

于 2013-04-25T18:18:53.617 に答える