mindrayguowei 发表于 2015-8-26 09:34:00

如何获得当前光标所在的TextFrame

现在有一个RTF格式的模版,模版上有好几个TextFrame,现在要求在程序里面识别当前正在编辑文字的是哪一个模版。怎么做?
最好是不要用TextFrameClicked,TextFrameActived等事件,尝试过这几个事件,不是很合适。

直接在TextControl的KeyPress事件里面判断,我当前输入文字的是哪个TextFrame

gw0506 发表于 2015-8-26 14:43:00

经过测试研究,发现KeyPress没法满足需求。必须有TextFrameEventArgs的事件才可以取到指定的TextFrame。
你目前用TextFrameClicked事件来处理,有什么问题呢?

mindrayguowei 发表于 2015-8-26 15:03:00

TextFrameClicked事件触发后确实可以拿到当前编辑的TextFrame,但是当光标定位到TextFrame之外的任何区域,这个TextFrame都还在的,以下我的是代码。


void _textControl_TextFrameClicked(object sender, TextFrameEventArgs e)
      {
            _textFrame = e.TextFrame;
      }


_textFrame是类变量,当光标定位到TextFrame,_textFrame能拿到值,可以识别其中的文本,
但是当光标定位到TextFrame之外的区域,类变量_textFrame无法置为null,任然可以识别的到,这不合适

gw0506 发表于 2015-8-26 15:07:00

那是代码逻辑问题。你需要这个时机给他置为null。 比如你什么地方用它了,用完了清一次。或者找个deactive事件清一次。
另外,他就是个引用类型的变量,清不清空,问题不大吧。

iceman 发表于 2015-9-2 10:22:00

回复 3楼mindrayguowei的帖子

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
http://gcdn.gcpowertools.com.cn/attachment.aspx?attachmentid=10062
页: [1]
查看完整版本: 如何获得当前光标所在的TextFrame