gpt4 book ai didi

vb.net - 高效、无闪烁的 vb.net 语法高亮器,与 IDE 中的一样好用

转载 作者:行者123 更新时间:2023-12-04 07:02:48 26 4
gpt4 key购买 nike

虽然我知道上述目标很难实现,但我知道这是可以实现的。

我做的一个做什么:

它将每个单词与列表中的单词进行比较,如果匹配,它将物理选择文本并更改颜色,最后将克拉返回到突出显示时的位置。

与此有关的问题:

  • 闪烁。它总是闪烁。我设法通过让线程休眠 50 毫秒来减少闪烁,但我无法完全摆脱它(它也没有明显减慢打字速度)。现在,我尝试的另一件事是使用第二个 RichTextBox 来突出显示,但这根本没有明显的区别。
  • 滚动。如果文本量足够大以导致出现滚动条,它将滚动 RichTextBox。
  • 删除文本。如果删除已突出显示的部分单词,即使现在更改了单词,它也会保留颜色格式。它还会物理地选择整个单词,这让我无休止地困惑。
  • 关闭窗口。由于每当调用 RichTextBox 的 TextChanged 事件时都会调用 highlight 子例程,显然它会在窗口关闭时触发?但是,由于窗口正在关闭,整个过程会变慢,因此对于较大的文件,可能需要 5-10 秒来浏览并突出显示每个关键字。

  • 我该如何解决这些问题?我不想用别人的组件,我特别想用我自己的。

    感谢您的帮助,我已经在这上面花了几个小时,到目前为止我对结果很满意。

    我的一些想法:
  • 物理编辑 RTF 而不是使用内置方法来更改文本颜色,这将解决我所有的问题。假设一个关键字是“The”(例如),rtf 是什么让它变成蓝色?
  • 不要使用语法高亮(这里是最后的手段)

  • 我的最终目标 :一种 RichTextBox 的语法高亮器,它与 Visual Studio 中的语法高亮器一样有效。

    编辑:是否有另一个组件比 RichTextBox 更好?

    最佳答案

    我不知道你这里是 Windows.Forms 还是 WPF,但如果是 Windows.Forms,我几年前写了一篇关于这个问题的博客文章,它可能适用于你。我这样做是为了一个聊天程序,它对我来说效果很好。 Blog post is here.

    关于vb.net - 高效、无闪烁的 vb.net 语法高亮器,与 IDE 中的一样好用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1567429/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com