2013-07-05 86 views
1

我正在爲我的學校項目開發C#ADO.NET項目。我已連接到SQL Server數據庫並可執行簡單的CRUD操作。當我的數據庫中的某個人今天有生日時,我的應用會顯示第二個表單(提醒表單),並且在我運行我的應用時顯示該提醒表單,所以一切正常,除了當我嘗試關閉時提醒表單我收到此錯誤消息:關閉窗體錯誤

無法訪問處置的對象。對象名稱:'Form2'。

這裏是我的代碼:

public partial class Form1 : Form 
{ 

Timer timer = new Timer(); 
Form2 forma = new Form2(); 


public Form1() 
{ 
    InitializeComponent(); 
    var data = new BirthdayEntities(); 
    dataGridView1.DataSource = data.Tab_Bday.ToList(); 
    timer.Tick += new EventHandler(timer_Tick); 
    timer.Interval = (1000) * (1);    
    timer.Enabled = true;      
    timer.Start();        

} 




private void timer_Tick(object sender, EventArgs e) 
{ 
    Boolean flag = false; 
    IQueryable<Tab_Bday> name; 
    using (var data2 = new BirthdayEntities()) 
    { 
     name = (from x in data2.Tab_Bday 
       select x); 

     foreach (var x in name) 
     { 
      if (x.Datum.Day == System.DateTime.Now.Day && x.Datum.Month == System.DateTime.Now.Month) 
      { 
       flag = true; 
       break; 
      } 
     } 
    } 

    if (flag == true) 
     forma.Show(); 

} 

回答

2

你需要停止你的定時器:現在

if (flag == true) 
{ 
    timer.Stop(); 
    forma.Show(); 
} 

,你forma實例得到重新顯示每秒一次(這已經沒有任何影響它已經可見,直到你關閉它),包括關閉後,這會導致異常。

+0

非常感謝您,先生! –