2013-11-20 40 views
1

在窗体加载我更新下拉列表值 ddlFont:System.FormatException了未处理

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事件中调用字体名为ddl,字体样式为ddl,字体大小为ddl的“FontFormation”方法。

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

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

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则越来越没有任何错误执行的代码。

+0

你的ddlFontSize.Text是什么呢?是“12px”还是“12pt”还是“12”? – NoLifeKing

+0

having 11 12 13 –

+0

用你的DropDowns中的一些例子更新你的问题。这使调试更容易。尝试单独运行Convert.ToUint32,看它是否会抛出另一个异常 – NoLifeKing

回答

2

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

+0

如您所述,ddlFontSize没有任何“px”或“pt”。仅存在价值观,如11 12 13 –

相关问题