3

重複の可能性:
Form2 から Form1 を制御したい

私は初心者でC#、探している答えがグーグルで見つからないので、ここの誰かが私を助けてくれることを願っています. 私は、フォームから別のフォームにデータを転送する(または渡す、好きなように呼び出す) ことだけを練習しています。

ここに私が持っているものがあります:

と の 2 つのフォームがForm1ありForm2ます。
Form1テキストボックス ( という名前txtForm1) とボタン ( という名前)が含まれていますbtnForm1
Form2テキストボックス ( という名前txtForm2) とボタン ( という名前)が含まれていますbtnForm2

アプリケーションを実行した後、ボタンをクリックするbtnForm1と、ユーザーが開きますForm2。ユーザーがテキストボックス ( ) に書き込むテキストは、 のテキストボックス ( 、このボタンは無効になっています)txtForm2に転送する必要があります。txtForm1Form1

この転送を行うにはどうすればよいですか?

編集済み:
わかりました、これが私が持っているすべてのコードであることを明確にする必要があります:

Form1 ( Form2を開くボタン):

    private void btnForm1_Click(object sender, EventArgs e)
    {
        new Form2().Show();
    }

Form2 ( Form2を閉じるボタン):

    private void btnForm2_Click(object sender, EventArgs e)
    {
        this.Close();
    }

私には他に何もありません。(私は全くの初心者です)

4

4 に答える 4

0

Form2には、次のようなものが必要です。

private void btnForm2_Click(object sender, EventArgs e)
 {          
   this.Hide();       
 }


public String GettxtForm2()
{
    return txtForm2.Text;
}

これで、form1で、次のようなtxtForm2にアクセスできます。

Form2 form2 = new Form2();
 //on click btnForm1 show that form2 where you can edit the txtForm2
 private void btnForm1_Click(object sender, EventArgs e)
     {                
       form2.Show();       
     }
   //after you save the txtForm2 when you will focus back to form1 the txtForm1 will get the value from txtForm2
   private void Form1_Enter(object sender, EventArgs e)
        {
             txtForm1.Text = Form2.GettxtForm2();
        }

このすべてのロジックが発生する可能性のあるイベントを簡単に変更できます...

于 2013-01-08T09:51:37.637 に答える
0

パブリック変数を作成し、テキストボックスから値を渡してから、2番目のフォームに渡します。

public static string myVar;   
myVar = txtForm2.Text;

そして、最初のフォームに戻ったとき: txtForm1.Text = Form2.myVar;

于 2013-01-08T09:44:40.873 に答える
0

Form1:

public void SetTextboxText(String text)
{
    txtForm1.Text = text;
}

private void btnForm1_Click(object sender, EventArgs e)
{
    var frm = new Form2(this); // pass parent form (this) in constructor
    frm.Show();
}

Form2:

Form _parentForm;

public Form2(Form form)
{
    _parentForm = form;
}

private void txtForm2_TextChanged(object sender, EventArgs e)
{
    _parentForm.SetTextboxText(txtForm2.Text); // change Form1.txtForm1.Text
}
于 2013-01-08T09:54:55.047 に答える
-1

これを試して ;)

Form1:

private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm2 = new Form2(textBox1.Text);
        frm2.Show();
        this.Hide();
    }

form2:

public partial class Form2 : Form
{
    public string textBoxValue;
    public Form2()
    {
        InitializeComponent();
    }

    public Form2(string textBoxValue)
    {
        InitializeComponent();
        this.textBoxValue = textBoxValue;
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        textBox2.Text = textBoxValue;
    }
于 2013-01-08T10:01:56.537 に答える