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

ePa*_*dit 4 .net c# fonts 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);
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

dig*_*All 8

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

this.richTextBox1.SelectAll();
this.richTextBox1.SelectionFont = newFont;
Run Code Online (Sandbox Code Playgroud)