Программирование на C # .NET 4.0 - моя последняя страсть, и я хотел бы знать, как добавить функциональность к стандартной кнопке выхода Windows.Forms (красный X в правом верхнем углу формы).
Я нашел способ отключить кнопку, но, поскольку я считаю, что это подрывает опыт пользователя, я бы хотел вместо этого подключить некоторые функции.
Как отключить кнопку выхода:
#region items to disable quit-button
const int MF_BYPOSITION = 0x400;
[DllImport("User32")]
private static extern int RemoveMenu(IntPtr hMenu, int nPosition, int wFlags);
[DllImport("User32")]
private static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
[DllImport("User32")]
private static extern int GetMenuItemCount(IntPtr hWnd);
#endregion
...
private void DatabaseEditor_Load(object sender, EventArgs e)
{
this.graphTableAdapter.Fill(this.diagramDBDataSet.Graph);
this.intervalTableAdapter.Fill(this.diagramDBDataSet.Interval);
// Disable quit-button on load
IntPtr hMenu = GetSystemMenu(this.Handle, false);
int menuItemCount = GetMenuItemCount(hMenu);
RemoveMenu(hMenu, menuItemCount - 1, MF_BYPOSITION);
}
Но как же мне прикрепить метод, прежде чем приложение выйдет со стандартной кнопкой выхода.Я хотел бы выполнить XmlSerialize a List перед выходом из формы Windows.