Программирование на C# .NET 4.0 - моя последняя страсть, и я хотел бы знать, как добавить функциональность к стандартной кнопке выхода Windows.Forms (красный X в правом верхнем углу формы).Добавить функциональность в кнопку выхода Windows.Forms?
Я нашел способ отключить кнопку, но поскольку я думаю, что это компрометирует пользовательский эксперимент, я хотел бы подключить некоторые функции вместо этого.
Как отключить кнопку выхода:
#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 List перед выходом из формы Windows.
Thanx Paul! Это сделало трюк :) BR –
Для записи событие называется 'FormClosing', поэтому при добавлении метода с помощью инспектора свойств он вызывает метод' Form1_FormClosing'. Я не мог понять, почему не было события «Закрытие», и понял, что это на самом деле «FormClosing». – styfle