【问题标题】:C# Change straight quotes to curly quotes on the fly in winforms RichTextBox instance [closed]C#在winforms RichTextBox实例中动态将直引号更改为弯引号[关闭]
【发布时间】:2021-02-16 18:37:11
【问题描述】:

VS 2019,C# WinForms 应用程序,.Net Framework 4.8,RichTextBox

当用户在富文本框中键入内容时,我想将直引号 (") 更改为适当的花引号(“ 或 ”)。

这个想法是在文档中向前看一个字符,如果它是空格(或字符是文档中的第一个字符),则使用“,否则使用”。

这个控件可以实现吗?

[编辑]

好吧,我找到了答案,如果有人想使用它,那就太简单了:

使用快捷键 CTRL + '(撇号)打开和关闭“智能引号”,这就是我想要做的。我不确定 RichTextBox 的哪些版本支持此功能,但最新版本支持。

【问题讨论】:

  • 您为解决问题做了哪些努力?

标签: c# winforms richtextbox


【解决方案1】:

此功能的术语称为“智能引号”,由底层 Rich Edit 控件支持。

使用键盘快捷键Ctrl+Shift+单引号(')在控件中键入时激活/停用该功能。

该功能需要Rich Edit Version 3.0 或更高版本。对于 .Net 版本 4.7 及更高版本,这不是问题,因为 Rich Edit 版本 5 是默认的底层控件。对于低于 4.7 的 .Net 版本,Rich Edit 版本 2 是默认设置;因此需要一个自定义 RichEdit 控件来启用此功能。

请注意,使用的字体会极大地影响 curly 引号的外观。

还要注意另一个Rich Edit Shortcut Keys

【讨论】:

  • 这正是我正在寻找的。我了解卷曲的不同字体表示,这很好。有什么方法可以检测该功能在给定表单上是否处于活动状态和/或处理相关事件?
  • @user1325543,据我所知,没有办法查询这种状态的富编辑控件。由于它最初是关闭的,因此您可以监视发送到控件的键以跟踪智能报价状态。
猜你喜欢
  • 2011-01-13
  • 2012-01-13
  • 2013-05-28
  • 1970-01-01
  • 1970-01-01
  • 2017-03-11
  • 1970-01-01
  • 2013-05-26
相关资源
最近更新 更多