此代码:
private void comboBoxFontSize_SelectedIndexChanged(object sender, EventArgs e) {
rtbResults.Font.Size = Convert.ToInt32(comboBoxFontSize.SelectedItem);
}
...生成此错误信息:“属性或索引器'System.Drawing.Font.Size'无法分配给 - 它只读”
尝试建议的修复后,我在运行时得到了这个:
System.FormatException未处理 消息=输入字符串格式不正确。 来源= mscorlib程序 堆栈跟踪: 在System.Number.StringToNumber(String str, ...
好的,我看到:我使用的是Convert.ToInt32(),但是comboBox中的第一个值是“8.25” - 显然,这不是一个int。
所以我尝试了Convert.ToDouble()并且不会编译。
然后我在智能感知中看到“调用此方法总是抛出'System.InvalidCastException'”*
所以我必须将组合框的值从8.25更改为8吗? 8.25是默认值...... ???
我周末读过(在Petzold的WP7书中,我认为)8.25对应于11.因此,我认为这里提到的8.25是像素,对应于字体大小11,这更有意义现在(虽然仍然过于误导/混淆)。
答案 0 :(得分:5)
因为Font是不可变的......
使用
rtbResults.Font = new Font(rtbResults.Font.FontFamily, Convert.ToInt32(comboBoxFontSize.SelectedItem),
rtbResults.Font.Style)
或您需要的其他Font构造函数。