/ / Nahradenie zastaralých uzatváracích udalostí za nové arény FormClosing [zatvorené] - c #, visual-studio-2012, užívateľské ovládacie prvky, manipulácia s udalosťami, formclosing

Nahradenie zastaralých záverov Eventargs s novým FormClosing args [closed] - c #, visual-studio-2012, user-controls, manipulácia s udalosťami, formulácia

Momentálne práve prebieha aktualizácia nášho systémudatabázový systém a všetky súbory vytvorením (32bit-2005 VC #) na 64 bitov teraz. Niečo, na čo som narazil, je únik údajov pri použití priradenia this.closing + = new CancelEventArgs (Názov udalosti); Zistil som, že je zastaraný, pretože to povedali kolegovia, a hľadám spôsob, ako prejsť na používanie udalosti FormClosing.

...

Starý kód a udalosť Pr.

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);
}
}

Tu by som chcel skonvertovať na internetFormClosing Event, aby sa Windows mohli postarať o únik údajov namiesto toho, aby som musel pridávať - ​​= vyhlásenie pre každú takúto udalosť do funkcie .dispose ().

Nápad / nový kód

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);
}
}

Bola by to životaschopná alternatíva. Máte nejaké návrhy, ako túto zmenu vykonať?

ÚPRAVA: LEPŠÍ PREHĽAD MÔJ OTÁZKY

Zmena:

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;
}
}

Z toho sa stáva niečo, z čoho môžem pomocou udalostí Windows jednoducho vytvoriť udalosť FormClosing.

odpovede:

0 pre odpoveď č. 1

Problémy boli vyriešené. Medzi našou databázou a pri načítavaní ovládacieho prvku, do ktorého tento dialóg patril, došlo k úniku údajov. Vážim si všetku pomoc. Databáza načítala informácie skôr, ako sa načíta dialógové okno, a potom ich pošle znova. Iba jedna sada údajov bola správne zlikvidovaná. Opravili sme problém. Ďakujem. -