2012-01-31 2 views
0

У меня есть эта кнопка с кодом:Ручка FormClosed события в WinForms

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.

+0

Почему вы пишете в консоли в приложении WinForms? –

+0

Возможно, вместо использования Debug.WriteLine, поскольку в приложении WinForms Console.WriteLine будет записываться на консоль VS. –

+0

Где указано AddRow? –

ответ

6

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) 
} 
+0

Не могли бы вы дать мне стандартный пример FormClosing? –

+0

@ Emil: am adaugat un mic exampleplu, dar e ff аналогичный cu ce ai scris deja. :) Успех. – woohoo

Смежные вопросы