如何知道文本框是否是粗体和斜体?

时间:2015-08-13 16:34:30

标签: c# winforms textbox

当文字 粗体和斜体 时。我试图找出它是否是斜体?但我失败了。

if (txtText.Text.Font.Style == FontStyle.Italic)
        txtText.Font = new Font(txtText.Font, txtText.Font.Style ^ FontStyle.Italic);

通过这种方式,

 if (txtText.Text.Font.Style == FontStyle.Bold)
        txtText.Font = new Font(txtText.Font, txtText.Font.Style ^ FontStyle.Italic);

我只知道文字粗体

1 个答案:

答案 0 :(得分:2)

您不能检查这样的相等性来检查是否设置了特定位。

要检查FontStyle.Italic位是否已设置,请执行:

//True if italic is set
if ((textText.Text.Font.Style & FontStyle.Italic) != 0)

这是有效的,因为之外的每个位FontStyle.Italic在结果中都为0,如果在当前样式中为0,则该位为0。因此,如果当前样式设置了,则结果将为非零,如果未设置则为零。

另请注意,因为您在其下方使用XOR,所以始终只需切换当前的斜体设置,而不是显式设置/取消设置。因此,甚至可能不需要您的支票。