Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何知道文本框是否为粗体和斜体?_C#_Winforms_Textbox - Fatal编程技术网

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

C# 如何知道文本框是否为粗体和斜体?,c#,winforms,textbox,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

当文本为粗体和斜体时。我想知道它是不是斜体?但我失败了

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,因此始终只需切换斜体的当前设置,而不是显式地设置/取消设置斜体。因此,您甚至可能不需要进行检查。

检查
(txtText.Text.Font.Style&FontStyle.Bold)==FontStyle.Bold
是否有效?我没试过,它奏效了。非常感谢。我不知道这是什么时候改变的,但在VisualStudio2019中,测试将是“if(textText.Font.Bold | textText.Font.Italic)”