Vous cherchez un élégant « Do not Show Me cette boîte de dialogue » de dialogue en C #

StackOverflow https://stackoverflow.com/questions/4274066

  •  28-09-2019
  •  | 
  •  

Question

J'ai cherché une boîte de dialogue avec une case à cocher « participe à l'émission de Don me cette boîte de dialogue » en C #.

Je recherche googlé et beaucoup, mais je ne pouvais pas trouver une solution élégante.

La boîte de dialogue devrait fonctionner comme similaire à la MessageBox.Show native, mais avec une nouvelle valeur de la propriété (valeur bool) retour à l'appelant.

Merci.

Était-ce utile?

La solution

Vista et les applications Windows 7 peuvent utiliser les nouvelles fonctionnalités TaskDialog qui étendent les MessageBoxes standard pour soutenir une case à cocher au fond (ainsi que toutes sortes d'autres goodies tels que des liens de commande, le texte de bouton personnalisé, pieds de page, etc.).

text alt

Malheureusement, à partir de C # vous devez faire quelques Interop pour y accéder. Si vous voulez juste les TaskDialogs avancés pour cibler Vista / Windows 7, utilisez le WindowsAPICodePack de http: //code.msdn .microsoft.com / WindowsAPICodePack qui peut gérer la complexité interop pour vous.

Si vous avez besoin pour soutenir XP, il y a un excellent emballage qui prend en charge les TaskDialogs natifs sur Vista / 7 avec une solution de repli pour WinForms XP ici: http://www.codeproject.com/KB/vista/Vista_TaskDialog_Wrapper.aspx

Autres conseils

Pourquoi ne pas créer votre propre. Il est très simple. Il suffit de tirer de la classe de System.Windows.Forms.Form et mimétique comme celui que vous voulez.

Je ne me sens pas qu'il y aura une solution readymade en tant que telle. Pour la mise en œuvre « Ne pas me montrer à nouveau », vous devez conserver l'information en dehors du dailog et aussi créer un profil d'utilisateur.

Si votre infrastructure de persistance du profil de l'utilisateur est là, vous pouvez simplement créer une classe similaire à la classe messagebox. Vous ne pouvez pas tirer de messagebox cependant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top