-5

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

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();
    }
}

}

4

1 回答 1

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();
}
于 2013-04-26T20:33:06.057 回答