Comment fermer un formulaire dans UserControl

J'ai créé un UserControl avec les boutons Save, Close et Cancel. Je veux fermer le formulaire sans enregistrer sur le bouton Annuler, invite un message à enregistrer sur le bouton Fermer et Enregistrer sans fermeture sur le bouton Enregistrer. Normalement, je l'aurais utilisé this.Close() sur le bouton Annuler, mais le contrôle utilisateur ne dispose pas d'une telle option. Donc je suppose que je dois définir une propriété.

De défilement en bas de la "Questions that may already have your answer" l'article, je suis tombé sur cette question: Comment fermer un ChildWindow à partir d'un UserControl bouton chargé à l'intérieur? j'ai utilisé le code C# suivant:

private void btnCancel_Click(object sender, EventArgs e)
{
    ProjectInfo infoScreen = (ProjectInfo)this.Parent;
    infoScreen.Close();
}

Ce fait le travail pour un seul écran, mais je me demande si je dois appliquer ce code pour tous les écran que j'ai? Je pense qu'il devrait être un moyen plus efficace. Donc ma question est: Dois-je appliquer ce code pour chaque formulaire, j'ai, ou est-il une autre (la plus efficace)?

Les contrôles ne devraient pas gâcher leur parent, déclencher un événement à la place.

OriginalL'auteur FJPoort | 2012-11-23