2012-01-31 43 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应用程序写入到控制台? – 2012-01-31 14:57:10

+0

可能不是使用Debug.WriteLine,因为在WinForms应用程序中,Console.WriteLine会写入VS控制台。 – 2012-01-31 15:00:10

+0

AddRow在哪里定义? – 2012-01-31 15:00:37

回答

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例子吗? – 2012-01-31 15:35:29

+0

@Emil:我喜欢这样的事情,并且喜欢类似的节目。 :)成功。 – woohoo 2012-01-31 15:50:56