我正在使用WinForms和RichTextBox控件开发一个应用程序。此控件允许使用属性更改RTF格式,以更改所选文本的字体。我有一个按钮可以在文本上切换粗体:
richTextBoxEditor.SelectionFont = new Font(richTextBoxEditor.SelectionFont,
richTextBoxEditor.SelectionFont.Style ^ FontStyle.Bold);
我的其他按钮(斜体,下划线)具有相同的代码,但FontStyle.Bold部分除外,该部分已更改为适当的格式。
现在问题是,如果我写“Hello World”并将“Hello”更改为斜体,然后我尝试将整个“Hello World”更改为粗体,“Hello”丢失其斜体。我理解为什么会这样做(因为整个选择的枚举是空的,所以当我切换粗体时,斜体标志仍为0),但我试图找到一种方法来克服这个问题。我不能想到任何一个字符和单独改变风格的东西。
你们有更好的主意吗?
感谢。
答案 0 :(得分:0)
听起来像个字符是你最安全的赌注。除非您正在创建一个完整的文字处理器,否则它似乎不是一个重大问题。
另一种选择是根据当前样式分解选择。因此,如果某人选择了比应用样式更大的区域,则需要将选区分为两部分:完全重叠样式区域的部分和不与样式区域重叠的部分。你需要逐个字符地找出分解选择的位置,但至少你不必将样式应用于每个角色。