|
问题是这样的,我用两个comboBox,分别加载系统的字体风格和字体大小。
根据这两个comboBox的选择,设置richTextBox中文字的字体。
下面这段代码可以完成这个功能:
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
float fontsize = FontSize[comboBox1.SelectedIndex]; //comboBox1存放字体大小
FontStyle fontStyle = comboBox2.Font.Style; //comboBox2中存放字体风格
richTextBox1.Font = new Font(new FontFamily(comboBox2.Text), fontsize, fontStyle);
}
但是存在一个问题,就是每次设置完字体大小后,richTextBox中的字体大小不会立刻改变,
必须改变一次字体风格才会有效果。
我想达到的效果是,单独改变字体大小或字体风格,都能即时改变richTextBox中的文字大小或风格。
于是我修改了代码,如下:
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
fontsize = FontSize[comboBox1.SelectedIndex];
FontFamily currentFontFamily;
currentFontFamily = richTextBox1.SelectionFont.FontFamily;
richTextBox1.SelectionFont = new Font(currentFontFamily, fontsize);
}
private void comboBox2_SelectedIndexChanged(object sender, EventArgs e)
{
FontStyle fontStyle = comboBox2.Font.Style;
richTextBox1.SelectionFont = new Font(new FontFamily(comboBox2.Text),richTextBox1.Font.Size,fontStyle);
}
这样一来,不管是改字体还是改大小,都是毫无反应...小弟初学C#,有很多不懂的地方,望各位大神多多指教,感激不尽!
|
|