Como faço para adicionar código para o botão de saída em um # forma c?
Pergunta
Estou usando o Microsoft Visual C # 2008 Express.
No meu formulário principal, há o botão X para fechar o formulário no canto superior direito. Como faço para adicionar o código para este botão? No meu menu, eu tenho um item "Exit" e tem código que limpa e fecha meus bancos de dados. Como faço para adicionar o mesmo código para este botão se as escolhe de usuários que, como forma de saída?
Obrigado!
-Adeena
Solução
Usando o Evento FormClosing deve pegar qualquer forma de fechar o formulário.
Outras dicas
Na vista de estrutura para o formulário, dentro da janela Propriedades, selecione o botão de Eventos e desça até os e eventos "FormClosed" "FormClosing".
FormClosed é chamado após o formulário é fechado.
FormClosing é chamado antes do formulário é fechado e também permite que você cancelar o fechamento, mantendo a forma aberta:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;
}
Se você quiser perguntar ao usuário "Tem certeza de que quer fazer perto este formulário?", Então use FormClosing
, onde você pode definir Cancel = True
ea forma permaneceria aberta.
Se você quiser fechar algum recurso somente quando o formulário é definitivamente fechado, então você usar o evento FormClosed
.
Se você está no controle de todo o código, então ele meio que não importa. Mas o que você não quer que aconteça é clean-up os recursos utilizando FormClosing
quando o outro manipulador do evento irá manter a forma aberta.
FormClosing / FormClosed permite que você assista o evento para esse formulário que pode coincidir com a aplicação de sair. No entanto, há um outro evento você pode conectar-se chamado Application.ApplicationExit.
No seu método principal:
Application.ApplicationExit += Application_ApplicationExit;
...
private static void Application_ApplicationExit(object sender, EventArgs e) {
// do stuff when the application is truly exiting, regardless of the reason
}
Use o Closed-Evento de sua winform.
Este código irá capturar o usuário clicar no 'X' ou usando Alt-F4 em um formulário para que você possa fazer alguma coisa. Eu tive que usar isso, porque o que eu precisava a ação para chamar de meu evento de encerramento, e não iria chamá-lo quando se utiliza o evento FormClosing devido a eventos de corrida.
/// <summary>
/// This code captures the 'Alt-F4' and the click to the 'X' on the ControlBox
/// and forces it to call MyClose() instead of Application.Exit() as it would have.
/// This fixes issues where the threads will stay alive after the application exits.
/// </summary>
public const int SC_CLOSE = 0xF060;
public const int WM_SYSCOMMAND = 0x0112;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if (m.Msg == WM_SYSCOMMAND && (int)m.WParam == SC_CLOSE)
MyClose();
base.WndProc(ref m);
}
duplo clique no botão de saída em form'design seguida basta ligar para o método Dispose ()
método de ação Form //
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
if (e.CloseReason == CloseReason.WindowsShutDown) return;
switch (MessageBox.Show(this, "Are you sure you want to exit?", "Exit", MessageBoxButtons.YesNo))
{
case DialogResult.No:
e.Cancel = true;
break;
default:
break;
}
}
You can use form closing events choose or set closing event in properties window
You can add dialog conditions based on what task you want to perform before closing form
private void Form1_FormClosing(object sender,FormClosingEventArgs e)
{
Application.Exit();
//you can also use Application.ExitThread();
}