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
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");
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.
AWESOME! Exactement ce que je cherchais. Merci beaucoup! –
Mon plaisir. N'oubliez pas de marquer comme accepté si cela vous a aidé! Merci :) –
Juste à ajouter. Vous pouvez également définir la propriété DialogResult du formulaire pour correspondre à celle d'une boîte de message. –
Vous pouvez utiliser une forme de fenêtre modale. Quelque chose comme
Form frm = new Form();
frm.ShowDialog(this);
montre la forme comme une boîte de dialogue modale avec la fenêtre active mis en comme son propriétaire.
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);
Juste ce que je cherchais! Cela m'évite de devoir créer une variable d'instance temporaire juste pour l'appeler :) – Kaitlyn