将TextBox值格式化为Form2 TextBox值

时间:2013-01-20 14:53:32

标签: c# winforms visual-studio-2012

基本上,当用户在textfield上的Form2输入数据时,我希望将数据存储到变量中,然后当用户选择按钮输入时,Form2将隐藏并{ {1}}会出现。然后,我希望Form1在新Form1中显示从textfield Form2输入的数据。

这是我的尝试,但它不起作用

表格2 ......

textfield

然后在Form1上调用它,我把...

public string Player1 {get; set;}

private void pvpPlay_Click(object sender, EventArgs e)
    {

        Player1 = txtPlayer1.Text;
        Form1 op = new Form1();
        op.Show();
        this.Hide();

    }

但它不起作用。希望有人知道答案。

2 个答案:

答案 0 :(得分:0)

我更喜欢使用像这样的简单回调函数:

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public String SomeProperty { get; set; }

    private void OpenFormButton_Click(object sender, EventArgs e)
    {
        var secondForm = new Form2()
        {
            GetSomeProperty = () => { return SomeProperty ;};
        };
        this.Hide(); //The best way to hide!
        secondForm.Show();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        SomeProperty = "HELLO WORLD";
    }
}



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

    public Func<string> GetSomeProperty
    {
        get;
        set;
    }

    private void Form2_Load(object sender, EventArgs e)
    {
        MessageBox.Show(GetSomeProperty.Invoke());
    }
}

每次调用GetSomeProperty.Invoke();时,Func都会调用get访问器并从第一个表单返回

答案 1 :(得分:0)

您可以做的是重载 Form1构造函数。

public Form1(string s)
{  
    txtTest.Text=s;
}  

Form2

致电时
Form1 op = new Form1(Player1);