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