C#,VS2010 - 更改字体和其他属性?

时间:2013-04-29 14:47:56

标签: c# visual-studio-2010 fonts label

创建一个文本编辑器只是为了尝试和磨练我的编程技巧。我有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的构造函数   参数。

尝试过并试过但没有运气。有人可以帮忙吗?

3 个答案:

答案 0 :(得分:1)

这是因为listboxfont.SelectedItemobject。您需要将其转换为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
  )