Подтвердить что ты не робот

Сделать шрифт курсивом и полужирным шрифтом

Как вы применяете несколько стилей шрифта к тексту?

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
);

Спасибо за любую помощь!

4b9b3361

Ответ 1

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
);

Возможно, вы хотели использовать оператор OR (|)

Ответ 2

FontStyle - это перечисление флага, поэтому вы можете установить несколько стилей с помощью:

FontStyle.Bold | FontStyle.Italic

Ответ 3

Я думаю, что это FontStyle.Bold | FontStyle.Italic

Обычно вы используете символ pipe (побитовый OR) для объединения нескольких флагов в эти функции

Эта страница объясняет это

http://www.blackwasp.co.uk/CSharpLogicalBitwiseOps_2.aspx

Ответ 4

Я думаю, вы могли бы воспользоваться классом Font:

/*controlName*/.SelectionFont=new Font(maintext.Font, FontStyle.Italic);

Ответ 5

Привет, я писал простой текстовый редактор, и у меня была такая же проблема, я не нашел ничего полезного в Интернете. Метод if, else if не является оптимальным, если в форме много кнопок, поэтому я подумал, почему бы не взять существующий font.style и просто добавить к нему, используя | символ, как люди, предложенные выше. Я тестировал этот код, и он работает. Я вызываю этот метод из pictureBox, который я нажимаю.

Update. Я нашел ошибку. когда вы снимаете выделение шрифта, он также перезагружает все остальные. Но код, который их объединяет, работает.

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 Я использовал вместо ячеек прямоугольники, а логические переменные, такие как BClicked, указывают, активированы они или нет.