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

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

我只知道文本是否粗体

最佳答案

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

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

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

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

另请注意,由于您在其下方使用 XOR,因此您将始终仅切换斜体的当前设置,而不是显式设置/取消设置它。因此,您的支票可能根本没有必要。

关于c# - 如何知道文本框是粗体还是斜体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31993807/

相关文章:

c# - 具有泛型重载的 GetMethod

c# - 我可以创建一个返回 Task<T> 的方法来同步运行吗?

c# - 在 DataGridView 中隐藏行非常慢

razor - Telerik Kendo MVC TextBox多行模式

C# 相当于 Python 的 id()?

.net - 如何防止 Visual Studio Windows 窗体设计器删除控件?

c# - 在winforms中绘制绘制的图形

javascript - 我可以创建一个用户无法在文本框中键入内容的文本框吗?

.net - Winforms 文本框粘贴不可靠?

c# - System.Windows.ResourceReferenceKeyNotFoundException