/ / Замяна на остарели Закриващи Eventargs с нови аргументи за FormClosing [затворен] - c #, visual-studio-2012, потребителски контроли, обработка на събития, formclosing

Подмяна на остарели Затваряне на Eventargs с нов FormClosing арги [closed] - c #, visual-studio-2012, потребителски контроли, обработка на събития, формиране

В момента сме в процес на актуализиране на нашиясистема за бази данни и всички файлове, като ги изградим (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

Проблемите бяха решени. Имаше изтичане на данни между нашата база данни и когато контролът, към който този диалог принадлежи, се зареждаше. Оценявам цялата помощ. Базата данни изстреля информацията преди зареждането на диалоговия прозорец и след това отново я изпрати. Само един набор от данни беше правилно изхвърлен. Поправихме проблема. Благодаря ти. -