c# - 在 C# 中捕获键盘笔画

标签 c# keyboard capture keydown

你好,

我有以下问题 - 以下文本位于富文本框中。

今天的世界[[精彩]]。

如果用户在单词之前和之后提供了两个括号,如 wonderful 的情况,则括号中的单词,在这种情况下,wonderful 应更改为链接(带有绿色)。

我在获取击键顺序时遇到问题,即。我怎么知道用户输入了 [[ ,所以我可以开始解析后面的其余文本。

我可以通过处理 KeyDown、事件和列表来获取它,但它看起来一点也不优雅。

请告诉我什么是正确的方法。

谢谢, 苏杰

最佳答案

我可以立即想到两种方法。

正如您所建议的,一种是使用列表维护当前状态——这个键是括号吗?最后一个键是括号吗? - 并即时更新。

另一种方法是简单地处理 TextChanged 事件并重新扫描 [[text-here]] 模式的文本并根据需要进行更新。

第一个需要更多的簿记,但对于较长的文本会更快。第二种方法更简单,可以用一个像样的正则表达式来完成,但随着文本变长,它会变慢。如果您知道自己有一些上限,例如 256 个字符,那么您可能没问题。但如果你期待小说,可能不是一个好主意。

关于c# - 在 C# 中捕获键盘笔画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/845792/

相关文章:

c# - 多个 JOINS 之间有条件 : LINQ query

c# - 使用 CodeDOM 生成私有(private) setter

c# - 自动属性初始化与构造函数初始化哪个优先?

ios - 键盘高度 0

R 中具有多个捕获组的正则表达式组捕获

javascript - 如何在 JavaScript 客户端截取网站/谷歌是如何做到的? (无需访问硬盘)

c# - 从 C# 中的动态对象中删除属性及其值

android - 我可以从 android 上的代码控制键盘,特别是大写锁定吗

c++ - 启动应用程序,在 C++ 中捕获标准输出和标准错误

python - 在python中轮询键盘(检测按键)