C# – 动态更改RichTextBox中的文本字体?

我在“richTextBox”和“comboBox”中有一些文本,其中包含一些字体的名称.如果从“comboBox”中选择了新字体,我想更改“richTextBox”中的文本字体.我正在使用以下代码.

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    if (comboBox1.SelectedIndex == 1)
        richTextBox1.Font = new Font("Comic Sans MS", 14);
}

问题是,如果我选择字体,文本不会自动更改其字体,只有在我键入一些新文本时才会更改.我也尝试过richTextBox1.SelectionFont而不是richTextBox1.Font.我还添加了InputTextBox.Refresh();在上面的代码之后刷新文本框但是静脉.

如何通过从comboBox中选择来更改文本的字体?

更新:我刚刚发现上面的代码很好,问题是我使用了错误的事件调用,使用comboBox1_SelectedValueChanged()代替comboBox1_SelectedIndexChanged(),它现在工作正常.

提示:如果要更改整个TextBox的字体,请使用richTextBox1.Font,如果要更改所选文本的字体,请仅使用richTextBox1.SelectionFont.

您可以在更改SelectedFont选项之前选择所有文本:

this.richTextBox1.SelectAll();
this.richTextBox1.SelectionFont = newFont;
相关文章
相关标签/搜索