Comment puis-je afficher le texte en gras dans la boîte de dialogue affichée par MessageBox.Show
, en utilisant C#?texte en gras dans MessageBox
Répondre
Impossible de faire. Vous devrez construire votre propre boîte. Je suppose que c'est WinForms, si c'est ASP.NET, je ne suis pas qualifié pour répondre.
Vous ne pouvez pas. Ceci est un wrapper pour l'API MessageBoxEx.
Créez votre propre messagebox personnalisé pour le faire.
Vous pouvez suivre this tutoriel, comme un exemple de la façon de mettre en œuvre un.
Les bases étapes de la création d'une telle forme:
- Créer une nouvelle forme
- Ajouter une étiquette et deux boutons
- Définir la police d'étiquette Gras
- ajouter gestionnaire à deux boutons, fermant le formulaire et définissant une propriété pour laquelle le bouton a été enfoncé.
Merci, pouvez-vous suggérer quelques étapes pour cela? – Karthick
Il l'a fait. Le tutoriel. – bmargulies
yup, a même ajouté quelques étapes de base comme une ligne de guidage. – Amirshk
Il est possible qu'une boîte de message soit une fenêtre régulière qui peut être manipulée comme n'importe quelle autre. Le code pour le faire est cependant un peu rude. Ajouter une nouvelle classe à votre projet et collez ce code:
using System;
using System.Text;
using System.Drawing;
using System.Windows.Forms;
using System.Runtime.InteropServices;
class BoldMessageBox : IDisposable {
private int mTries = 0;
private Form mOwner;
private Font mFont;
public BoldMessageBox(Form owner) {
mOwner = owner;
owner.BeginInvoke(new MethodInvoker(findDialog));
}
private void findDialog() {
// Enumerate windows to find the message box
if (mTries < 0) return;
EnumThreadWndProc callback = new EnumThreadWndProc(checkWindow);
if (EnumThreadWindows(GetCurrentThreadId(), callback, IntPtr.Zero)) {
if (++mTries < 10) mOwner.BeginInvoke(new MethodInvoker(findDialog));
}
}
private bool checkWindow(IntPtr hWnd, IntPtr lp) {
// Checks if <hWnd> is a dialog
StringBuilder sb = new StringBuilder(260);
GetClassName(hWnd, sb, sb.Capacity);
if (sb.ToString() != "#32770") return true;
// Got it, get the STATIC control that displays the text
IntPtr hText = GetDlgItem(hWnd, 0xffff);
if (hText != IntPtr.Zero) {
// Get the current font
IntPtr hFont = SendMessage(hText, WM_GETFONT, IntPtr.Zero, IntPtr.Zero);
Font font = Font.FromHfont(hFont);
// And make it bold (note the size change to keep enough space!!)
mFont = new Font(font.FontFamily, font.SizeInPoints - 1f, FontStyle.Bold);
SendMessage(hText, WM_SETFONT, mFont.ToHfont(), (IntPtr)1);
}
// Done
return false;
}
public void Dispose() {
mTries = -1;
mOwner = null;
if (mFont != null) mFont.Dispose();
}
// P/Invoke declarations
private const int WM_SETFONT = 0x30;
private const int WM_GETFONT = 0x31;
private delegate bool EnumThreadWndProc(IntPtr hWnd, IntPtr lp);
[DllImport("user32.dll")]
private static extern bool EnumThreadWindows(int tid, EnumThreadWndProc callback, IntPtr lp);
[DllImport("kernel32.dll")]
private static extern int GetCurrentThreadId();
[DllImport("user32.dll")]
private static extern int GetClassName(IntPtr hWnd, StringBuilder buffer, int buflen);
[DllImport("user32.dll")]
private static extern IntPtr GetDlgItem(IntPtr hWnd, int item);
[DllImport("user32.dll")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wp, IntPtr lp);
}
Et l'utiliser comme ceci:
private void button1_Click(object sender, EventArgs e) {
using (new BoldMessageBox(this)) {
MessageBox.Show("Nobugz waz here");
}
}
Il y a une faille dans cette approche. Après avoir rendu la police en gras, le texte doit toujours tenir dans le contrôle statique que la boîte de message réservée au texte. Cela m'a obligé à réduire la taille de la police. Vous devrez peut-être modifier cette valeur.
Un * bit * gritty ?! :) – Tom
MessageBox Extended Assemblée .NET XMSG .NET web page: more info, download
Permet de régler à la volée grande variété de paramètres visuels MessageBox.
caractéristiques réglables comprennent la police de message et la couleur, les légendes des boutons, les polices et les info-bulles, fond dialogue, la position de dialogue, icône de dialogue, délai d'attente et plus encore. Selon la police de message sélectionnée, la fenêtre de dialogue se redimensionne automatiquement pour s'adapter au message.
Commandes supplémentaires pouvant être affichées en option: case à cocher, saisie de texte, lien Web, jusqu'à 3 boutons supplémentaires.
Dans votre code .NET, vous appelez encore MessageBox.Show régulière. MessageBox étendu n'est pas un dialogue personnalisé. C'est toujours MessageBox régulier avec des fonctionnalités étendues ajoutées.
OS pris en charge: XP, 2000, 2003, 2008 Vista, Win7 - 32 ou 64 bits.
Téléchargements incluent la version d'essai entièrement fonctionnelle, et la version régulière avec le code source complet C#.
- 1. Définir le texte en gras dans InstallScript
- 2. Texte gras sélectionné dynamiquement
- 3. UITextField rendre le texte en gras?
- 4. Insérer du texte en gras dans Word en utilisant VBA
- 5. Détecter si le texte est en gras
- 6. MessageBox multilingue en C#
- 7. Affichage du texte en gras de SQLite dans UITableViewCell
- 8. Texte en gras (uiwebview) n'apparaît pas dans iphone4
- 9. Comment formater le texte en gras, souligné dans XSLT
- 10. Comment texte en caractères gras dans asp: DropDownList
- 11. Making texte en gras en utilisant Writer flux en C#
- 12. impressions d'impression lentement pour le texte en gras
- 13. parties de chaîne en gras
- 14. Comment mettre en gras du texte avec Compact Framework
- 15. Styles MessageBox dans .NET
- 16. Afficher MessageBox dans ASP
- 17. MessageBox de WinAPI en Java
- 18. MessageBox dans C# .net
- 19. MessageBox dans C#
- 20. android messagebox
- 21. trouver du texte en gras dans la feuille Excel en utilisant C#
- 22. Rendu de police en gras et normal
- 23. Dates du calendrier en gras
- 24. Comment faire la première ligne dans une certaine quantité de texte dans une étiquette en gras?
- 25. Changer la langue pour le texte du bouton MessageBox
- 26. Faire entrée des commandes en gras au
- 27. RetryCancel MessageBox
- 28. Comment rendre une légende de bouton en gras dans MFC?
- 29. MessageBox non autobloquant dans C#
- 30. Comment définir le texte d'une zone de texte en gras lors de l'exécution?
Merci, s'il vous plaît suggérer, c'est pour winforms. – Karthick