【winform】icsharpcode 自动补全"("等符号

上篇文章讨论了如何使用winform的texteditor实现补全"("的功能,今天讨论一下,如何使用超??的winform插件icsharpcode实现上述功能

首先是偏移量的概念

偏移量是指:相对于文档的偏移(位置)。

介绍textlocation的概念

textlocation是一个结构体,它里面有很多信息,如下图?
在这里插入图片描述
从上图我们可以看的出来,他是ICSharpCode.TextEditor.TextLocation下面的一个结构体,里面包含很多信息,下面逐一介绍
Line:顾名思义就是行数
Colum:顾名思义again,就是列数
X:行坐标
Y:列坐标
还有一个bool类型的是否为空
对于行数和列数,我么可以直接利用,加上lable做成实时显示
对于x,y这是一个偏移量

如果我们有光标的所在位置的索引就可以继续做了,现在我们只有偏移量,怎么换成索引呢?
如果连这个方法都没有的话,那么icsharpcode就不配??了

int linindex = textEditorControl1.Document.GetLineSegment(position.Line).Offset;

这个方法输入一个行号,该行号要从textlocation获得,然后返回该行的第一个元素的索引
然后就按照上篇的方法做就ok了
还要声明一点
在icsharpcode中加载事件时,一定要初始化

 this.textEditorControl1.ActiveTextAreaControl.TextArea.KeyPress += new KeyPressEventHandler(this.textEditorControl1_KeyPress);

像这样,不然keypress事件不会起作用的!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值