vb.net 将非 constans 字体样式添加到 richtextbox 选择
vb.net adding non constans font styles to richtextbox selection
有没有更好的方法来构建 FontStyle 与 "add/append" 方法而不是列出所有可能的组合?
'l is an instance of class that holds bold/italic/underline as booleans
Dim fStyle As New FontStyle
If l.fontBold And Not l.fontItalic And Not l.fontUnderline Then
fStyle = FontStyle.Bold
ElseIf Not l.fontBold And l.fontItalic And Not l.fontUnderline Then
fStyle = FontStyle.Italic
ElseIf Not l.fontBold And Not l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Underline
ElseIf l.fontBold And l.fontItalic And Not l.fontUnderline Then
fStyle = FontStyle.Bold Or FontStyle.Italic
ElseIf l.fontBold And Not l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Bold Or FontStyle.Underline
ElseIf Not l.fontBold And l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Italic Or FontStyle.Underline
ElseIf l.fontBold And l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Bold Or FontStyle.Italic Or FontStyle.Underline
End If
是的。 FontStyle
枚举有一个 FlagsAttribute
,这意味着您可以将枚举常量与 Or
.
结合使用
<Flags>
Public Enum FontStyle
这样做
Dim fStyle As FontStyle = FontStyle.Regular
If l.fontBold
fStyle = fStyle Or FontStyle.Bold
End If
If l.fontItalic
fStyle = fStyle Or FontStyle.Italic
End If
If l.fontUnderline
fStyle = fStyle Or FontStyle.Underline
End If
参见:Use Enumerated Values with Bit Flags to Handle Multiple Options
有没有更好的方法来构建 FontStyle 与 "add/append" 方法而不是列出所有可能的组合?
'l is an instance of class that holds bold/italic/underline as booleans
Dim fStyle As New FontStyle
If l.fontBold And Not l.fontItalic And Not l.fontUnderline Then
fStyle = FontStyle.Bold
ElseIf Not l.fontBold And l.fontItalic And Not l.fontUnderline Then
fStyle = FontStyle.Italic
ElseIf Not l.fontBold And Not l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Underline
ElseIf l.fontBold And l.fontItalic And Not l.fontUnderline Then
fStyle = FontStyle.Bold Or FontStyle.Italic
ElseIf l.fontBold And Not l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Bold Or FontStyle.Underline
ElseIf Not l.fontBold And l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Italic Or FontStyle.Underline
ElseIf l.fontBold And l.fontItalic And l.fontUnderline Then
fStyle = FontStyle.Bold Or FontStyle.Italic Or FontStyle.Underline
End If
是的。 FontStyle
枚举有一个 FlagsAttribute
,这意味着您可以将枚举常量与 Or
.
<Flags>
Public Enum FontStyle
这样做
Dim fStyle As FontStyle = FontStyle.Regular
If l.fontBold
fStyle = fStyle Or FontStyle.Bold
End If
If l.fontItalic
fStyle = fStyle Or FontStyle.Italic
End If
If l.fontUnderline
fStyle = fStyle Or FontStyle.Underline
End If
参见:Use Enumerated Values with Bit Flags to Handle Multiple Options