Возникла небольшая проблема. Есть 3 кнопки: жирный, курсив и подчеркивание. При нажатии на каждый из них, автоматически меняется стиль выделенного текста. Проблема заключается в том, что к примеру после нажатия на "жирный" нажимаю на "курсив" и выделенный текст принимает стиль курсива и сбрасывает активный жирный. Перепробовал очень много способов. Максимум выходит применить одновременно 2 стиля, до 3 не доходит. Сразу скажу, что я пытался в условии задать на проверку одновременно 2 стиля. Условие не работает, программа не может понять какие стили выделены одновременно. Вот код.
private void bold_Click(object sender, EventArgs e)
{
if (ContentBox.SelectionFont.Style == FontStyle.Italic)
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Bold | FontStyle.Italic);
if (ContentBox.SelectionFont.Style == FontStyle.Underline)
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Bold | FontStyle.Underline);
if (ContentBox.SelectionFont.Style == FontStyle.Regular)
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Bold);
else
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Bold | FontStyle.Italic | FontStyle.Underline);
ContentBox.Select();
}
private void italic_Click(object sender, EventArgs e)
{
if (ContentBox.SelectionFont.Style == FontStyle.Bold)
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Italic | FontStyle.Bold);
if (ContentBox.SelectionFont.Style == FontStyle.Underline)
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Italic | FontStyle.Underline);
if (ContentBox.SelectionFont.Style == FontStyle.Regular)
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Italic);
else
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Italic | FontStyle.Bold | FontStyle.Underline);
ContentBox.Select();
}
private void underline_Click(object sender, EventArgs e)
{
if (ContentBox.SelectionFont.Style == FontStyle.Bold)
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Underline | FontStyle.Bold);
if (ContentBox.SelectionFont.Style == FontStyle.Italic)
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Underline | FontStyle.Italic);
if (ContentBox.SelectionFont.Style == FontStyle.Regular)
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Underline);
else
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Underline | FontStyle.Bold | FontStyle.Italic);
ContentBox.Select();
}
Скажите, как добиться того же результата что и в ворде?
Ответ
Почему бы вам не попробовать
private void bold_Click(object sender, EventArgs e)
{
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Bold | ContentBox.SelectionFont.Style);
ContentBox.Select();
}
Или
private void bold_Click(object sender, EventArgs e)
{
ContentBox.SelectionFont = new Font(ContentBox.SelectionFont, FontStyle.Bold ^ ContentBox.SelectionFont.Style);
ContentBox.Select();
}
Комментариев нет:
Отправить комментарий