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

How to know a textbox is Bold and Italic or not?

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

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);

我只知道文字是否为粗体

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

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

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

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

另请注意,因为您在其下方使用 XOR,所以您将 始终 仅切换斜体的当前设置,而不是明确地 set/unset。因此,您的支票甚至可能都没有必要。