2014-02-26 49 views

回答

10

这是FontStyles.Italic ...使用FontStyles枚举设定值FontStyle

listBoxItem.FontStyle = FontStyles.Italic; 
2

试试这个FontStyles.Italic

listBoxItem.FontStyle = FontStyles.Italic; 
+0

它必须是FontStyle's'.Italic ;. –

+0

@AnatoliyNikolaev谢谢..更新 –

+0

我尝试喜欢它,但我得到了erorr,不能解决符号斜体,任何想法? –

1

在这种情况下FontStyle是结构MSDN

定义一个st表示正常,倾斜或倾斜的字体样式的结构。

它可以ILSpy查看:

[TypeConverter(typeof(FontStyleConverter)), Localizability(LocalizationCategory.None)] 
public struct FontStyle : IFormattable 
{ 
    private int _style; 

    internal FontStyle(int style) 
    { 
     this._style = style; 
    } 

在这里我们看到,字段类型Int_style。要设置Int类型的值,它是从静态类FontStyles采取:

public static class FontStyles 
{ 
    public static FontStyle Normal 
    { 
     get 
     { 
      return new FontStyle(0); 
     } 
    } 

    public static FontStyle Oblique 
    { 
     get 
     { 
      return new FontStyle(1); 
     } 
    } 

    public static FontStyle Italic 
    { 
     get 
     { 
      return new FontStyle(2); 
     } 
    } 

    internal static bool FontStyleStringToKnownStyle(string s, IFormatProvider provider, ref FontStyle fontStyle) 
    { 
     if (s.Equals("Normal", StringComparison.OrdinalIgnoreCase)) 
     { 
      fontStyle = FontStyles.Normal; 
      return true; 
     } 

     if (s.Equals("Italic", StringComparison.OrdinalIgnoreCase)) 
     { 
      fontStyle = FontStyles.Italic; 
      return true; 
     } 

     if (s.Equals("Oblique", StringComparison.OrdinalIgnoreCase)) 
     { 
      fontStyle = FontStyles.Oblique; 
      return true; 
     } 

     return false; 
    } 
} 

所以事实证明,要设置FontStyle需要参考一个静态类FontStyles

SomeControl.FontStyle = FontStyles.Italic; 

可以有有点混乱,在实际上,有两种FontStyle(无S)枚举:

namespace MS.Internal.Text.TextInterface

internal enum FontStyle 
{ 
    Italic = 2, 
    Oblique = 1, 
    Normal = 0 
} 

此枚举是内部,我想使用的系统内部结合的公共结构FontStyles

namespace System.Drawing

[Flags] 
public enum FontStyle 
{ 
    Regular = 0, 
    Bold = 1, 
    Italic = 2, 
    Underline = 4, 
    Strikeout = 8 
} 

这标志枚举公共System.Drawing像这样使用:

SomeControl.Font = new Font(FontFamily.GenericSansSerif, 
         12.0F, FontStyle.Bold | FontStyle.Italic);