3

可能重复:
我想从 Form2 控制 Form1

我是新手,C#我在谷歌中找不到我正在寻找的答案,所以我希望这里有人可以帮助我。我只是在练习将数据从一个表单传输到另一个表单(或传递,随心所欲地调用它) 。

这是我所拥有的:

我有 2 个表格 -Form1Form2.
Form1包含一个文本框(命名txtForm1)和一个按钮(命名btnForm1)。
Form2包含一个文本框(命名txtForm2)和一个按钮(命名btnForm2)。

运行应用程序后,通过单击按钮btnForm1,用户打开Form2。用户在文本框 ( ) 中写入的文本txtForm2应传输到 中的文本框 ( txtForm1,该按钮被禁用) Form1

我该如何进行此转移?

编辑:
好的,我需要清楚这是我拥有的所有代码:

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

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 回答
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

创建一个公共变量并将文本框中的值传递给第二个表单。

public static string myVar;   
myVar = txtForm2.Text;

当您返回第一种形式时: txtForm1.Text = Form2.myVar;

于 2013-01-08T09:44:40.873 回答
-1

尝试这个 ;)

在表格 1 上:

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

在表格 2 上:

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 回答