В момента сме в процес на актуализиране на нашиясистема за бази данни и всички файлове, като ги изградим (32bit-2005 VC #) до 64 бита сега. Нещо, на което се сблъсках, е изтичането на данни, когато се използва задание this.closing + = new CancelEventArgs (име на събитие); Открих, че е остаряла, тъй като колегите са я поставили и търся начин да преминат към използване на събитие FormClosing.
...
Стар код и събитие Ex.
this.Closing += new CancelEventHandler(AssignUsers_Closing);
private void AssignUsers_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
try
{
"some event"
}
catch (Exception ex)
{
ShowException se = new ShowException();
se.ShowDialog(ex);
}
}
Това е мястото, където бих искал да превърна вFormClosing Event, така че Windows да може да се погрижи за изтичането на данни за мен, вместо да се налага да добавя - = оператор за всяко събитие като тази в функцията .dispose ().
Идея / нов код
private void AssignUserForm_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
*code*
// Use e.cancel to test whether to close the form or not.
}
catch (Exception ex)
{
ShowException se = new ShowException();
se.ShowDialog(ex);
}
}
Дали това би било жизнеспособна алтернатива. Имате ли предложения как да направите тази промяна?
РЕДАКТИРАНЕ: ПО-ДОБЪР ПРЕГЛЕД НА МОЯТА ВЪПРОС
Промяна на това:
public AssignUserForm()
{
InitializeComponent();
InitMe();
try
{
Database.ApplyFieldSecurity(this);
}
catch { }
}
private void InitMe()
{
try
{
this.Closing += new CancelEventHandler(AssignUsers_Closing);
// Get the users from the system
//Binding happens
}
catch (Exception ex)
{
throw ex;
}
}
Превръщайки го в нещо, където мога да използвам Събития на Windows, за да създам събитие FormClosing.
Отговори:
0 за отговор № 1Проблемите бяха решени. Имаше изтичане на данни между нашата база данни и когато контролът, към който този диалог принадлежи, се зареждаше. Оценявам цялата помощ. Базата данни изстреля информацията преди зареждането на диалоговия прозорец и след това отново я изпрати. Само един набор от данни беше правилно изхвърлен. Поправихме проблема. Благодаря ти. -