【问题标题】:How to make a text in the textbox both bold and italic?如何使文本框中的文本既粗体又斜体?
【发布时间】:2020-02-10 06:00:33
【问题描述】:

我是 C# 语言的新手。所以我在 Visual Studio 中创建了一个表单,上面有 3 个复选框,分别命名为粗体、斜体和下划线。还有一个文本框。当我选中“粗体”复选框时,它会使我的文本变为粗体,所有其他复选框都像这样工作,但是当我尝试选中 2 个或所有复选框时,只有一个有效。这是我编写的代码,通过选中第一个和第二个复选框来使文本变为粗体和斜体,但绝对不起作用:

if (checkBox1.Checked == true && checkBox2.Checked == true)
{
    textBox1.Font = new Font(textBox1.Font, FontStyle.Bold);
    textBox1.Font = new Font(textBox1.Font, FontStyle.Italic);
}

我还有一个用于字体大小的组合框,效果很好,但是当我选中“粗体”复选框然后更改字体大小时,它会恢复为常规字体样式并且不会保持粗体。 我该怎么办?

【问题讨论】:

  • TextBox 不能混合字体样式。改用 RichTextBox,分配 SelectionFont 属性。

标签: c# .net winforms


【解决方案1】:

您设置了两次字体,而不是组合值。如果您查看 FontStyle 的定义,您将看到它是一个位域(它具有 flags 属性)。只是或值。 (请注意,我们使用按位 OR 而不是布尔 OR)

{
    textBox1.Font = new Font(textBox1.Font, FontStyle.Bold | FontStyle.Italic);
}

不过,稍微不同的代码结构会更好:

FontStyle style;
if (checkBox1.Checked)
{
    style = style | FontStyle.Bold;
}
if (checkBox2.Checked)
{
    style = style | FontStyle.Italic;
}

textBox1.Font = new Font(style);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-04
    相关资源
    最近更新 更多