Saludos,
- Felicitaciones por ese animo en seguir aprendiendo
- Para el formulario principal, solamente necesitas colocar el código en el evento FormClosing y en el botón debes invocar el método Close del formulario.
- Si se cierra el formulario principal y aceptan en el MessageBox, se cerraran todos los demás formularios; si estos formularios tienen la validación de salida, te mostrará un MessageBox por cada formulario que tengas abierto.
Código vb:
Ver originalPrivate Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
Me.Close()
End Sub
Private Sub mainForm_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
Dim r As DialogResult
r = MessageBox.Show("Está a punto de cerrar el programa. ¿Seguro que quiere salir?", _
" ATENCIÓN!!! ", _
MessageBoxButtons.YesNo, _
MessageBoxIcon.Question, _
MessageBoxDefaultButton.Button2, _
MessageBoxOptions.RightAlign)
If r = DialogResult.No Then
e.Cancel = True
Else
Dim i As Integer
For i = Application.OpenForms.Count - 1 To 1 Step -1
Dim frm As Form = Application.OpenForms(i)
If frm IsNot Me Then
frm.Close()
End If
Next
End If
End Sub
Espero que te sea de utilidad