你好,
我有以下问题 - 以下文本位于富文本框中。
今天的世界[[精彩]]。
如果用户在单词之前和之后提供了两个括号,如 wonderful 的情况,则括号中的单词,在这种情况下,wonderful 应更改为链接(带有绿色)。
我在获取击键顺序时遇到问题,即。我怎么知道用户输入了 [[ ,所以我可以开始解析后面的其余文本。
我可以通过处理 KeyDown、事件和列表来获取它,但它看起来一点也不优雅。
请告诉我什么是正确的方法。
谢谢, 苏杰
最佳答案
我可以立即想到两种方法。
正如您所建议的,一种是使用列表维护当前状态——这个键是括号吗?最后一个键是括号吗? - 并即时更新。
另一种方法是简单地处理 TextChanged 事件并重新扫描 [[text-here]] 模式的文本并根据需要进行更新。
第一个需要更多的簿记,但对于较长的文本会更快。第二种方法更简单,可以用一个像样的正则表达式来完成,但随着文本变长,它会变慢。如果您知道自己有一些上限,例如 256 个字符,那么您可能没问题。但如果你期待小说,可能不是一个好主意。
关于c# - 在 C# 中捕获键盘笔画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/845792/