我正在尝试为用户提供一个菜单选项,用于保存带有首选项的文本文件,以及他/她选择的字体和文本框内文本的颜色。
这是我正在使用的代码。和ms visual studio 2015告诉我
无法将类型“string”隐式转换为“System.Drawing.Font”
所以显然我需要另一种转换为System.Drawing.Font
的变量。我甚至尝试过String,但也没用。
private void loadPreferencesToolStripMenuItem_Click(object sender, EventArgs e)
{
if (openFileDialog2.ShowDialog() == DialogResult.OK)
{
System.IO.StreamReader sr = new System.IO.StreamReader(openFileDialog2.FileName);
var myFont= sr.ReadLine();
var myColor = sr.ReadLine();
sr.Close();
fontDialog1.Font = myFont;
}
}
答案 0 :(得分:0)
拉里,
您没有向我们展示将字体和颜色存储到使用openFileDialog2打开的文件中的代码,但该结构很重要。我假设您只是将字体和颜色的ToString保存到文件中。
您的文件可能如下所示:
[字体:名称= Segoe UI,大小= 8.25,单位= 3,GdiCharSet = 0, GdiVerticalFont = FALSE]
颜色[黑色]
您的代码必须解析字符串以将其转换回字体和颜色。 解析字体的代码将要求您拆分字符串,读取将用于创建新字体的名称和值。这同样适用于颜色;你必须将阅读器中的字符串解析为(在我的例子中)一个颜色字符串(E.G.Black)。
var myFont = new Font(fontName,fontSize);
var myColor = ColorTranslator.FromHtml(colorName);
fontName,fontSize和colorName是您必须创建的变量,然后从流中填充。
HTH,
马克