как установить несколько стилей шрифта при установленном поле со списком в c# - PullRequest
1 голос
/ 29 мая 2020

Я бы хотел указать стиль и размер шрифта в Combobox. Когда я выбрал размер шрифта после выбранного стиля шрифта, я снова выбираю стиль шрифта в Combobox, он не работает.

Как я могу решить эту проблему?

private void FontBox_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        RichTextBox.SelectionFont = new Font(FontBox.Text, RichTextBox.Font.Size);
    }
    catch { }
}

private void font_sizeBox_SelectedIndexChanged(object sender, EventArgs e)
{
    try
    {
        RichTextBox.SelectionFont = new Font(RichTextBox.Font.FontFamily, 
            float.Parse(font_sizeBox.SelectedItem.ToString()));
    }
    catch { }
}

Ответы [ 2 ]

2 голосов
/ 29 мая 2020

Чтобы отображать шрифты в ComboBox с соответствующими стилями, мы должны установить свойство ComboBox DrawMode от Normal до DrawItemFixed. Затем мы можем использовать событие DrawItem:

    public Form1()
    {
        InitializeComponent();
        comboBox1.DrawItem += comboBox1_DrawItem;
        comboBox1.DataSource = System.Drawing.FontFamily.Families.ToList();
    }

Здесь мы создаем метод comboBox1_DrawItem и назначаем DataSource для ComboBox как текущие установленные семейства шрифтов.

    private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
    {
        var comboBox = (ComboBox)sender;
        var fontFamily = (FontFamily)comboBox.Items[e.Index];
        var font = new Font(fontFamily, comboBox.Font.SizeInPoints);

        e.DrawBackground();
        e.Graphics.DrawString(font.Name, font, Brushes.Black, e.Bounds.X, e.Bounds.Y);
    }

Тогда это должен быть метод DrawItem. Вы также можете указать comboBox1.DrawMode = DrawMode.OwnerDrawFixed; в publi c вашей формы.

0 голосов
/ 29 мая 2020

Попробуйте настроить так:

richTextBox1.SelectAll();
richTextBox1.SelectionFont = newFont;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...