3

在我的应用程序中,我希望用户从用户系统中可用的字体列表中选择一种字体,并将该字体设置为richtextbox。我试过了 ::

    System.Drawing.Text.InstalledFontCollection fonts = new System.Drawing.Text.InstalledFontCollection();
        foreach (FontFamily family in fonts.Families)
        {
           comboBox1.Items.Add(family.Name);
        }

    private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
    {
        richTextBox1.Font = new Font(comboBox1.SelectedText, 14);
    }

但它改变了文本的默认行为。例如:文本包括粗体和斜体的标题。使用上面的代码设置字体会以常规形式转换文本。我的问题是,可能保持文本的行为与以前一样,而不是通过将粗体文本保持为粗体并以斜体保持斜体来以常规形式更改完整的文本。

4

2 回答 2

0

有一个使用字体原型初始化字体的选项。尝试使用 micrsoftsansserif 将字体原型定义为具有所需大小和样式的字体,然后将新字体作为第二个参数传递。msdn 有所有的信息。

于 2012-06-16T08:56:00.193 回答
0

SelectedText用于 ComboBox 文本属性的突出显示部分。可能不是你想要的:

richTextBox1.Font = new Font(comboBox1.Text, 14);

此外,如果您只希望 RichTextBox 的突出显示部分具有新字体:

richTextBox1.SelectionFont = new Font(comboBox1.Text, 14);

如果突出显示的文本的任何部分混合了粗体和斜体以及不同的大小等,RichTextBox 不能很好地保留这些属性。请参阅更改任何元素时如何保持 RichText 格式(粗体/斜体/等)?

于 2012-06-16T12:13:42.627 回答