当前上下文中不存在名称“fe”

时间:2013-04-26 20:31:45

标签: c# .net winforms multiple-forms

请帮助我有两种形式,我必须从第二种形式的第一种形式调用方法...但我因上述错误而被卡住了。当我的第二张表格关闭时,我需要关闭表格。

namespace WindowsFormsApplication1
{
public partial class Passengerdetail : Form
{
    passengerDetailClass pd = new passengerDetailClass();

    Flightentry fe = new Flightentry();        //if i remove this code

    public Passengerdetail()
    {
        InitializeComponent();
        fe.FormClosed += new FormClosedEventHandler(fe_FormClosed);  //this line gives error mentioned above.
    }

    void fe_FormClosed(object sender, FormClosedEventArgs e)
    {
        this.Close();
    }

    private void label1_Click(object sender, EventArgs e)
    {

    }

    private void Passengerdetail_Load(object sender, EventArgs e)
    {

    }

    private void button2_Click(object sender, EventArgs e)
    {

        Flightentry fe = new Flightentry(this);        //this code lets me access the method from the other form removing it will mean no method =(

        this.Hide();
        fe.Owner = this;
        fe.ShowDialog();
        this.Show();
    }

    public void insertData()
    {
        pd.Insert();     //i want to access this method
    }

}

}

第二种形式的代码如下......

namespace WindowsFormsApplication1
{
public partial class Flightentry : Form
{

    flightDetail fd = new flightDetail();

    private Passengerdetail pd;


    public Flightentry(Passengerdetail paDet)
    {
        InitializeComponent();

        pd = paDet;
    }

    private void label5_Click(object sender, EventArgs e)
    {

    }


    private void button2_Click(object sender, EventArgs e)
    {
        pd.insertData();\\i call the insert method from the previous form here.

        fd.Insert(comboBox1.Text,comboBox2.Text,comboBox3.Text,textBox3.Text,textBox8.Text,dateTimePicker1.Text,textBox6.Text,textBox5.Text);
    }

    private void Flightentry_Load(object sender, EventArgs e)
    {

    }

    private void Flightentry_FormClosing(object sender, FormClosingEventArgs e)
    {
    }

    private void button1_Click(object sender, EventArgs e)
    {
        this.Owner.Show();
        this.Hide();
    }
}

}

1 个答案:

答案 0 :(得分:4)

它发生在这里吗?

//Flightentry fe = new Flightentry();        //if i remove this code

public Passengerdetail()
{
    InitializeComponent();
    fe.FormClosed += new FormClosedEventHandler(fe_FormClosed);  //this line gives error mentioned above.
}

因为您已注释掉fe

的声明

根据您的意见,我认为您需要以下内容

Flightentry fe;

public Passengerdetail()
{
    InitializeComponent();
    fe = new Flightentry(this)
    fe.FormClosed += new FormClosedEventHandler(fe_FormClosed);  //this line gives error mentioned above.
}

...

private void button2_Click(object sender, EventArgs e)
{
    this.Hide();
    fe.Owner = this;
    fe.ShowDialog();
    this.Show();
}