创建一个文本编辑器只是为了尝试和磨练我的编程技巧。我有winform打开新的文本文件,保存它们和通常的撤消,重做,复制,粘贴等等。但是。我现在正在尝试更改字体。
当您单击菜单条中的“更改字体”按钮时,将出现一个新表单,并将您可以使用的所有可用字体加载到列表框中。
List<string> fonts = new List<string>();
foreach (FontFamily font in System.Drawing.FontFamily.Families)
{
fonts.Add(font.Name);
}
listboxfont.DataSource = fonts;
在我编辑其他页面上的文本之前,我想编辑一个样本标签来测试一切正常!
经过一番研究,我遇到了很多像这样的代码......
lblsample.Font = new Font(listboxfont.SelectedItem, 12);
我可能错了,但我认为没有理由不能使用列表框中的选定项目,这是字体并使用它来编辑标签但是它给了我错误..
“Text_editor.font不包含带2的构造函数 参数。
尝试过并试过但没有运气。有人可以帮忙吗?
答案 0 :(得分:1)
这是因为listboxfont.SelectedItem
是object
。您需要将其转换为string
所以:
lblsample.Font = new Font((string)listboxfont.SelectedItem, 12);
或者如果您愿意:
lblsample.Font = new Font(listboxfont.SelectedItem.ToString(), 12);
这应该可以做到!
更新 - 完整示例
添加名为listboxfont
添加名为lblsample
添加名为btnPreview
private void Form1_Load(object sender, EventArgs e)
{
List<string> fonts = new List<string>();
foreach (FontFamily font in System.Drawing.FontFamily.Families)
{
fonts.Add(font.Name);
}
listboxfont.DataSource = fonts;
}
private void btnPreview_Click(object sender, EventArgs e)
{
lblsample.Font = new Font(listboxfont.SelectedItem.ToString(), 12);
}
答案 1 :(得分:0)
您已在font
表单中声明了名为Text_editor
的变量。 (注意套管..全部小写!)
OR
您在问题中输入的邮件有拼写错误。是Text_editor.fonts does not contain a constructor that takes 2 arguments.
吗?如果是,那么您错误地使用了fonts
变量,该变量不是Font
类型,而是List<string>
类型。
正确命名变量,它应该开始工作。
答案 2 :(得分:0)
试试这个:
lblsample.Font = new Font(listboxfont.SelectedItem.ToString(), 12.0f);
Font构造函数请求String和float
公共字体(
string familyName,
浮动emSize
)