2010-10-04 5 views
1

После того, как я добавил следующий код в мой код, моя форма не закрывается.Форма C# не закрывается на событии FormClosing

private void Form1_FormClosing(object sender, FormClosingEventArgs e) { 
    MyThreadingObj.Dispose(); 
} 
+2

Что вид объекта OBJ, что вы избавляетесь? – Web

+0

Оберните утилиту в try/catch и покажите или запишите любое исключение, которое вы получите - это может дать вам подсказку. И повторяя то, что @Web говорит: почему вы распоряжаетесь тем, что «obj» в этот момент? –

ответ

3

Похоже, что добавление вышеуказанного кода предотвращает закрытие вашего Form. Если это так, то наиболее вероятной причиной является то, что оператор MyTHreadingObj.Dispose() генерирует исключение. Попробуйте оберточной заявление в Try/улове и увидеть, если это так

try { 
    MyThreadingObj.Dispose(); 
} catch (Exception e) { 
    Console.WriteLine(e); 
} 
0
protected override void OnFormClosing(FormClosingEventArgs e) 
     {    
      base.OnFormClosing(e); 
      if (PreClosingConfirmation() == System.Windows.Forms.DialogResult.Yes) 
      { 
       Dispose(true); 
       Application.Exit(); 
      } 
      else 
      { 
       e.Cancel = true; 
      } 
     } 

     private DialogResult PreClosingConfirmation() 
     { 
      DialogResult res = System.Windows.Forms.MessageBox.Show(" Do you want to quit?   ", "Quit...", MessageBoxButtons.YesNo, MessageBoxIcon.Question); 
      return res; 
     }