VB .NET - Fechando o formulário da sua aplicação
Hoje veremos como fechar o formulário de uma aplicação VB .NET usando o evento FormClosing. |
Já nos
tempos do VB6 podíamos saber porque o usuário estava fechando o formulário da
aplicação. Bastava usar o evento QueryUnload.
Recordando as constantes usadas no QueryUnload:
Constante |
Valor |
Descrição |
vbFormCode |
1 |
O método Unload foi invocado no código |
vbAppWindows |
2 |
A sessão atual do Windows foi encerrada. |
vbFormMDIForm |
4 |
O formulário MDI filho esta sendo fechado porque o formulário MDI foi fechado. |
vbFormControlMenu |
0 |
O usuário usou o comando Close menu de comandos no formulário. |
vbAppTaskManager |
3 |
A janela da tarefas do windows esta fechando a aplicação. |
Na nova versão do VB.NET , o VB 2005, podemos usar o evento FormClosing e a propriedade CloseReason para fazer a mesma coisa.
A propriedade CloseReason retorna vários valores conforme o motivo pelo qual o formulário esta sendo fechado como fazia o VB6 com o QueryUnload.
Vejamos então quais os valores da enumeração CloseReason :
Enumeração | Descrição do motivo do fechamento do formulário para cada valor |
ApplicationExitCall | O fechamento esta sendo feito via chamada a Application.Exit() |
MdiFormClosing | O formulário MDI do formulário esta sendo fechado |
None | causas desconhecidas |
FormOwnerClosing | O formulário proprietário esta sendo fechado |
TaskManagerClosing | O administrador de tarefas do Windows esta fechando o formulário |
UserClosing | O fechamento esta sendo feito via Close ou clicando no X do menu de controle |
WindowsShutDown | O Windows esta sendo encerrado |
Nota:
Apenas para recordar:
O evento Closing
ocorre quando o formulário esta sendo fechado. Quando isto ocorre todos os
recursos criados com o objeto são liberados e o formulário é liberado. Se
cancelarmos este evento o formulário permanece aberto. Desta forma para cancelar
o fechamento de um formulário no VB.NET definimos a propriedade Cancel do
evento CancelEventArgs passado para o tratador de eventos como igual a
True. Lembrando também que os eventos Form.Closed e Form.Closing não são disparados quando o método Application.Exit é chamado para encerrar a aplicação. |
Abaixo o código para VB .NET :
Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Me.Close() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Application.Exit() End Sub Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing MessageBox.Show(e.CloseReason.ToString) Select Case e.CloseReason Case CloseReason.ApplicationExitCall Case CloseReason.FormOwnerClosing Case CloseReason.MdiFormClosing Case CloseReason.None Case CloseReason.TaskManagerClosing Case CloseReason.UserClosing Case CloseReason.WindowsShutDown End Select End Sub End Class
|
Até
mais ver...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
Referências: