状态变量

时间:2014-01-05 13:06:26

标签: c# winforms variables

我正在编写一个只能打开3个表单的Windows应用程序(C#)。 当我单击form1的按钮时,form2将打开但只打开一次。

我不知道为什么会这样。

你能帮帮我吗?

谢谢!

这是我的form1代码:

public partial class Form1 : Form
{
    bool form2Opend = false;

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        if (!form2Opend)
        {
            Form2 f2 = new Form2(this);
            f2.Show();
            form2Opend = true;
            string data = this.textBox1.Text;
            f2.TextInTextBox(data);
        }
    }

    public void TextInTextBox(string text)
    {
        this.textBox1.Text = tekst;
    }

    public void putStatusToOff()
    {
        this.form2Opend = false;
    }
}

这是我在form2中的代码

public partial class Form2 : Form
{

    private Form1 f1;

    public Form2(Form1 giveToForm)
    {
        f1 = giveToForm;
        InitializeComponent();
    }

    public void TextInTextBox(string tekst)
    {
        this.textBox1.Text = text;
    }

    private void button1_Click(object sender, EventArgs e)
    {
        string dataFromForm2 = this.textBox1.Text;
        f1.TextInTextBox(dataFromForm2);
        f1.putStatusToOff();
        this.Close();
    }
}

1 个答案:

答案 0 :(得分:0)

button1_Click方法中,检查状态变量form2Opend,只有在此变量设置为false时才打开表单。如果您需要Form2的多个实例,则必须删除该检查:

private void button1_Click(object sender, EventArgs e)
{
    Form2 f2 = new Form2(this);
    f2.Show();
    string data = this.textBox1.Text;
    f2.TextInTextBox(data);
}