我在“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();
以刷新文本框,但在静脉中。
如何通过从组合框中选择来更改文本的字体?
更新: 我刚刚发现上面的代码没问题,问题是我使用了错误的事件调用,用 comboBox1_SelectedValueChanged()
代替了 comboBox1_SelectedIndexChanged()
现在工作正常。
提示:如果您想更改整个文本框的字体,请使用richTextBox1.Font
,如果您只想更改所选文本的字体,请使用richTextBox1.SelectionFont
。
最佳答案
您可以在更改 SelectedFont
选项之前选择所有文本:
this.richTextBox1.SelectAll();
this.richTextBox1.SelectionFont = newFont;
关于C# - 动态更改 RichTextBox 中的文本字体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5528906/