2010-03-01 6 views
6

Je travaille sur une application pour le travail et j'ai besoin d'une boîte de message personnalisée pour apparaître. J'ai créé un simple formulaire appelé Alert.cs que j'ai stylé comme je veux et ajouté un bouton avec une méthode de clic de this.Close(). maintenant je veux qu'il se comporte exactement comme un messagebox.show() standard. J'ai le formulaire montrant mais quand j'utilise le messagebox.show standard ("texte d'alerte") il attend pour continuer l'opération jusqu'à ce que l'utilisateur clique sur "OK", c'est ce que je veux que le formulaire fasse.C# - Utiliser le formulaire au lieu de la boîte aux messages

Répondre

5

Vous aurez besoin de mettre en œuvre une méthode statique pour votre classe Alert si vous voulez exactement le comportement comme MessageBox.

public static DialogResult Show(string text) 
{ 
    Alert form = new Alert(text); 
    return form.ShowDialog(); 
} 

Maintenant, vous pouvez utiliser le formulaire en appelant:

Alert.Show("my message"); 
+0

Juste ce que je cherchais! Cela m'évite de devoir créer une variable d'instance temporaire juste pour l'appeler :) – Kaitlyn

11

Utilisez Form.ShowDialog();. Cela permet au formulaire d'agir de la même manière qu'un MessageBox dans le sens où il conserve son focus jusqu'à sa fermeture.

+0

AWESOME! Exactement ce que je cherchais. Merci beaucoup! –

+0

Mon plaisir. N'oubliez pas de marquer comme accepté si cela vous a aidé! Merci :) –

+1

Juste à ajouter. Vous pouvez également définir la propriété DialogResult du formulaire pour correspondre à celle d'une boîte de message. –

0

Vous n'écrire pas comment vous affichez actuellement votre formulaire d'alerte, mais d'appeler

alert.ShowDialog(); 

au lieu de alert.Show() devrait faire l'affaire.

Le ShowDialog qui prend un propriétaire est une alternative encore meilleure:

alert.ShowDialog(owner);