System.FormatException未处理

时间:2013-11-20 11:33:43

标签: c#-4.0

在表单加载中,我正在更新下拉列表值 ddlFont:

foreach (FontFamily font in System.Drawing.FontFamily.Families)
{
    ddlFont.Items.Add(font.Name);
}

ddlFontSize:

for (int i = 8; i < 24; i++)
{
    ddlFontSize.Items.Add(i.ToString().Trim());
}

ddlFontStyle:

ddlFontStyle.Items.Add(System.Drawing.FontStyle.Bold.ToString());
ddlFontStyle.Items.Add(System.Drawing.FontStyle.Italic.ToString());
ddlFontStyle.Items.Add(System.Drawing.FontStyle.Regular.ToString());

ddlFontColor:

ddlColor.Items.Add(System.Drawing.Color.Black.Name.ToString());
ddlColor.Items.Add(System.Drawing.Color.Blue.Name.ToString());
ddlColor.Items.Add(System.Drawing.Color.Green.Name.ToString());
ddlColor.Items.Add(System.Drawing.Color.Red.Name.ToString());
ddlColor.Items.Add(System.Drawing.Color.White.Name.ToString());
ddlColor.Items.Add(System.Drawing.Color.Yellow.Name.ToString());

如果用户更改字体,大小,样式,颜色,则必须更改RichTextBox控件文本字体,大小,样式和颜色。

我从下拉列表控件的SelectedIndexChanged事件调用“FontFormation”方法,该控件具有字体名称ddl,字体样式ddl,字体大小ddl。

    private void ddlFont_SelectedIndexChanged(object sender, EventArgs e)
    {
        FontFormation();
    }

在我的代码中,前两个条件正在执行而没有错误,但最后一个条件在"Input string was not in a correct format"处显示ddlFont.Text错误。

public void FontFormation()
{
    if (FontStyle.Bold.ToString() == ddlFontStyle.Text)
    {
        rchtxtMainBody.Font = new System.Drawing.Font(ddlFont.Text, Convert.ToUInt32(ddlFontSize.Text), FontStyle.Bold);
    }
    else if(FontStyle.Italic.ToString() == ddlFontStyle.Text)
    {
        rchtxtMainBody.Font = new System.Drawing.Font(ddlFont.Text, Convert.ToUInt32(ddlFontSize.Text), FontStyle.Italic);
    }
    else if (FontStyle.Regular.ToString() == ddlFontStyle.Text)
    {
        rchtxtMainBody.Font = new System.Drawing.Font(ddlFont.Text, Convert.ToUInt32(ddlFontSize.Text), FontStyle.Regular);
    }
}

如果我删除了我的最后一个条件,即条件FontStyle.Regular.ToString() == ddlFontStyle.Text,则代码执行时没有任何错误。

1 个答案:

答案 0 :(得分:2)

问题在于你的ddlFontSize.Text。无法转换为UInt32时会发生异常。请调试您的代码,并确保ddlFontSize.Text没有“px”或“pt”,而且只有字符串格式的数字。