【问题标题】:A way to overcome RichTextBox's limitations?克服 RichTextBox 限制的方法?
【发布时间】:2023-03-10 22:31:02
【问题描述】:

我正在使用 WinForms 和 RichTextBox 控件开发应用程序。此控件允许对 RTF 格式进行不同的更改,使用属性来更改所选文本的字体。我有一个按钮可以在文本上切换粗体:

richTextBoxEditor.SelectionFont = new Font(richTextBoxEditor.SelectionFont,
    richTextBoxEditor.SelectionFont.Style ^ FontStyle.Bold);

我的其他按钮(斜体、下划线)具有相同的代码,但 FontStyle.Bold 部分已更改为适当的格式。

现在的问题是,如果我写“Hello World”并将“Hello”更改为斜体,然后尝试将整个“Hello World”更改为粗体,“Hello”会失去斜体。我理解它为什么这样做(因为整个选择的枚举是空的,所以当我切换粗体时,斜体标志保持为 0),但我正在尝试找到一种方法来克服这个问题。我想不出除了逐个字符和单独改变风格之外的任何事情。

你们有什么更好的主意吗?

谢谢。

【问题讨论】:

    标签: c# winforms rtf


    【解决方案1】:

    听起来逐个字符是您最安全的选择。除非您正在创建一个成熟的文字处理器,否则这似乎不是一个大问题。

    另一种选择是根据当前样式分解选择。因此,如果有人选择的区域大于应用样式的区域,则需要将选择分成两部分:与样式区域完全重叠的部分和完全不与样式区域重叠的部分。您需要逐个字符地找出在哪里拆分选择,但至少您不必将样式应用于每个单独的字符。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-06
      • 2016-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-13
      • 2015-04-12
      相关资源
      最近更新 更多