2008-11-09 6 views
6

C#: Quelle est la bonne façon de changer le style de police (soulignement) d'un label lors de l'exécution?WinForms: Quelle est la bonne façon de changer le style de police (soulignement) d'un label à l'exécution?

Jusqu'à présent, je comprends que si vous souhaitez modifier les propriétés liées à la police lors de l'exécution d'une étiquette, principalement toutes les propriétés de police, vous devez utiliser,

lblName.Font = new Font(... etc. etc. 

Y at-il un raccourci vers ce qui précède, mais seulement n'attribuez rien d'autre qu'un nouveau style de police tel FontStyle.Underline?

ou

Est-ce que je dois procéder à l'aide de la méthode « nouvelle police() » et affecter tous les domaines ainsi que trop juste pour souligner mon label?

+0

Vous voudrez peut-être spécifier le fenêtrage que vous utilisez (Winforms ou WPF). –

Répondre

0

Que diriez-vous (j'utilise .Net Framework 2.0) Ok, donc cela fonctionne pour une application Web. Dans une application de formulaires, il est en lecture seule.

lblName.Font.Underline = true;

est ici la définition:

// 
    // Summary: 
    //  Gets or sets a value that indicates whether the font is underlined. 
    // 
    // Returns: 
    //  true if the font is underlined; otherwise, false. The default value is false. 
    [DefaultValue(false)] 
    [NotifyParentProperty(true)] 
    public bool Underline { get; set; } 
+0

Ne fonctionnera pas car font.underline est une propriété en lecture seule. –

+0

Etes-vous sûr? J'ai essayé avant que je l'ai posté et cela a fonctionné. Quelle version utilisez-vous? – wonderchook

+0

Oups, ça ne fait rien. Cela fonctionne pour un Web Ap, pas un Windows. – wonderchook

1

recours à,

this.Font = new Font (this.Font, FontStyle.Underline);

Works pour les formulaires Win32.

+0

C'est tout ce que j'ai trouvé non plus. Je ne pense pas que ce soit trop mauvais. – wonderchook

12

La façon dont vous l'avez fait:

this.Font = new Font(this.Font, FontStyle.Underline); 

est correcte. La raison est que Font est un type scellé et immuable (par conception). Lorsqu'il a été introduit dans .NET 1, cela semblait un peu étrange mais avec l'accent mis aujourd'hui sur la programmation fonctionnelle, la simultanéité et l'immuabilité, ce style est vu beaucoup plus. Peut-être que cela a été fait de cette façon puisque les contrôles héritent de la police de leur conteneur et le suivi des changements de propriétés de polices individuelles serait plus efficace que le suivi d'un changement de police en gros.

1
//Bold. 
    label1.Font = new Font(label1.Font.Name, 12, FontStyle.Bold); 

//Bold With Underline. 
    label1.Font = new Font(label1.Font.Name, 12, FontStyle.Bold | FontStyle.Underline); 

//Bold with Underline with Italic. 
    label1.Font = new Font(label1.Font.Name, 12, FontStyle.Bold | FontStyle.Underline | FontStyle.Italic); 
Questions connexes