Обрабатывать событие FormClosed в WinForms - PullRequest
0 голосов
/ 31 января 2012

У меня есть эта кнопка с кодом:

   private void button22_Click_1(object sender, EventArgs e)
    {
        Separare sp = new Separare(dataGridView1,label_pin.Tag.ToString(),label_pin.Text);
        sp.FormClosed += new FormClosedEventHandler(ClosedForm);
        sp.Show();

    }

FormClosedEventHandler выглядит так:

   DataTable bon_temp = bon_tempTableAdapter.GetDataByTable(label_pin.Tag.ToString());

        foreach (DataRow row in bon_temp.Rows)
        {
            AddRow(row.ItemArray[3].ToString(), Convert.ToInt32(row.ItemArray[4]), Convert.ToDecimal(row.ItemArray[5]));
            Console.WriteLine(row.ItemArray[3].ToString(), Convert.ToInt32(row.ItemArray[4]), Convert.ToDecimal(row.ItemArray[5]));
        }

        bon_tempTableAdapter.DeleteQuery(label_pin.Tag.ToString());

, где метод AddRow добавляет строки в DataGridView. Моя проблема заключается в том, что при закрытии формы sp строки не добавляются в DataGridView.

1 Ответ

6 голосов
/ 31 января 2012

FormClosed происходит всякий раз, когда пользователь закрывает форму, после форма была закрыта и указывает причину закрытия.

Причина вашего кода невозможно, некоторые элементы управления в форме уже уничтожены ...

Я предлагаю вам использовать событие FormClosing, которое происходит всякий раз, когда пользователь закрывает форму, до , когда форма закрыта.и указывает причину закрытия.

Пример кода (он очень похож на то, что вы сделали выше):

this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MyMainForm_FormClosing);

...

private void MyMainForm_FormClosing(object sender, FormClosingEventArgs e)
{
  //your code goes here
  //optionally, you can get or set e.Cancel which gets or sets a value indicating that the event should be cancelled; in this case the form won't close if you cancel it here
  //or, you can check e.CloseReason which gets a value that indicates why the form is being closed (this is an enum Systems.Windows.Forms.CloseReason)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...