Comment appliquez-vous plusieurs styles de police au texte?
System.Drawing.Font MyFont = new System.Drawing.Font(
thisTempLabel.LabelFont,
((float)thisTempLabel.fontSize),
FontStyle.Bold + FontStyle.Italic, // + obviously doesn't work, but what am I meant to do?
GraphicsUnit.Pixel
);
Merci pour toute aide!
System.Drawing.Font MyFont = new System.Drawing.Font(
thisTempLabel.LabelFont,
((float)thisTempLabel.fontSize),
FontStyle.Bold | FontStyle.Italic, // + obviously doesn't work, but what am I meant to do?
GraphicsUnit.Pixel
);
Vous souhaitiez peut-être utiliser l'opérateur OR (|
)
FontStyle
est une énumération d'indicateurs et vous pouvez donc définir plusieurs styles en:
FontStyle.Bold | FontStyle.Italic
Je pense que c'est FontStyle.Bold | FontStyle.Italic
Vous utilisez généralement le symbole de canal (OR au niveau du bit) pour combiner plusieurs indicateurs dans ces fonctions
Cette page l'explique
Salut, j'écrivais un simple éditeur de texte et j'ai eu le même problème, je n'ai rien trouvé d'utile sur Internet. La méthode if, else if n'est pas optimale s'il y a beaucoup de boutons dans le formulaire, alors j'ai pensé pourquoi ne pas prendre le font.style existant et simplement l'ajouter en utilisant | symbole comme les personnes suggérées ci-dessus. J'ai testé ce code et ça marche. J'appelle cette méthode depuis pictureBox je clique.
Mise à jour. J'ai trouvé un bug. lorsque vous désélectionnez une police, elle réinitialise également toutes les autres polices. Mais le code qui les combine fonctionne.
private void ChangeFontStyle(PictureBox p)
{
if (p == pictureBox1)
{
if (BClicked)
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Bold);
}
else
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular);
}
}
else if (p == pictureBox2)
{
if (IClicked)
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Italic);
}
else
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular);
}
}
else if (p == pictureBox3)
{
if (UClicked)
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.SelectionFont.Style | FontStyle.Underline);
}
else
{
richTextBox1.SelectionFont = new Font(richTextBox1.Font, richTextBox1.Font.Style | FontStyle.Regular);
}
}
}
P.S J'ai utilisé des boîtes d'image au lieu de boutons et des variables booléennes comme BClicked indiquent si elles sont activées ou non.
Je pense que vous pourriez bénéficier d'une classe Font:
/*controlName*/.SelectionFont=new Font(maintext.Font, FontStyle.Italic);