文本窗口的光标位置不准,能否再优化一下。另有正则提取的问题

使用问题 · 525 次浏览
iamadsl 创建于 2023-03-12 01:09

文本窗口

光标定位没问题,但显示不出来光标位置的内容

比如定位点是104行AAA后面,事实上光标也确实在这里,但文本窗口最底行才显示到95行,差的很多

另外,最好能让光标位置显示在文本窗口的最顶行,或者中间(偏上)也行。一是更方便看下面的内容,二是就算有几行误差,起码在文本窗口里能显示出来,不至于像现在这样看不到

PS:代码编辑器经常出现Ctrl+End跳不到最后一行的情况,要按2次才能跳到最后,可能是同一类问题导致的?

 

正则提取

因为要通过正则提取获取字数,发现正则提取模块会报错,但尝试了一下手写就没问题,最好能更新一下,手写能力太差,每次都很费劲。。。尤其是写options的时候

$=Regex.Match({原始数据_编辑中}, ".+?AAA",RegexOptions.Singleline).Value

 

iamadsl 最后更新于 2023/3/12

回复内容
CL 2023-03-12 07:57
#1

光标滚动那个是控件本身的问题,我之前测试有时候确实滚动不到最后,即便使用ScrollToEnd,不过控件层面的没什么能力修改。

正则提取这个没明白是什么问题。

iamadsl 回复 CL 2023-03-12 09:31 :

光标那个手动+500,勉强实现了目标位置居于屏幕中。

正则提取,就是用正则提取模块时会报那个错。用赋值模块就不会报错。

后来又试了一下,正则提取模块无论能不能找到,都很慢,然后报错。

赋值模块的话,能提取到的时候很快,结果正常;提取不到的时候结果也正常,就是特别慢,瞬时占CPU特别高

我现在统一用正则替换解决了,因为用赋值模块提取不到的时候,慢的忍不了,可能还是文字太多了

CL 回复 iamadsl 2023-03-12 09:47 :

我可能理解错了。 是哪个光标? 后来是怎么居中的呢?

正则时间太长,可能是表达式不是很合适造成了更复杂的匹配。 目前模块里限制了3秒超时,所以会提示那个错误。

iamadsl 回复 CL 2023-03-12 10:06 :

啊,我说的是昨天新加的光标位置参数

居中是把光标位置额外加了500,实现的是视图居中(有一定误差),不是光标居中,光标仍然是在很靠后的位置

我一屏幕大概显示60多行,估计有500字左右,算上段首和段尾各占一个字符,算起来有六七八百字了

iamadsl 回复 CL 2023-03-12 10:08 :

正则的话,我记得是同样提取成功的情况下,用赋值模块应该没超过3秒,还是挺快的,但用正则提取就报错了

CL 回复 iamadsl 2023-03-12 10:09 :

哦,那个是字符数量计算的,然后内部调用了一个方法让光标进入可见范围。

iamadsl 回复 CL 2023-03-12 10:11 :

呃,那误差就很大了,你计算的时候是不是没算段首和段尾的字符数?那可能行数越多误差就越大

我这试的是段首段尾各占一个字符,这个也得算进去吧

CL 回复 iamadsl 2023-03-12 10:12 :

这个没有计算的,是控件自身的接口,应该会计算不可见字符。

iamadsl 回复 iamadsl 2023-03-12 10:12 :

好像也不是。。。。不行我晕了,你琢磨吧。。。能解决最好,不能解决反正我也凑和算是实现需求了。。。要能解决,最好还能实现一下光标位置居屏幕中间,方便查看上下文

回复主贴