找回密码
 立即注册

QQ登录

只需一步,快速开始

mindrayguowei

中级会员

122

主题

274

帖子

986

积分

中级会员

积分
986

活字格认证

QQ
mindrayguowei
中级会员   /  发表于:2015-8-26 09:34  /   查看:3917  /  回复:4
现在有一个RTF格式的模版,模版上有好几个TextFrame,现在要求在程序里面识别当前正在编辑文字的是哪一个模版。怎么做?
最好是不要用TextFrameClicked,TextFrameActived等事件,尝试过这几个事件,不是很合适。

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

4 个回复

倒序浏览
gw0506
超级版主   /  发表于:2015-8-26 14:43:00
沙发
经过测试研究,发现KeyPress没法满足需求。必须有TextFrameEventArgs的事件才可以取到指定的TextFrame。
你目前用TextFrameClicked事件来处理,有什么问题呢?
回复 使用道具 举报
mindrayguowei
中级会员   /  发表于:2015-8-26 15:03:00
板凳
TextFrameClicked事件触发后确实可以拿到当前编辑的TextFrame,但是当光标定位到TextFrame之外的任何区域,这个TextFrame都还在的,以下我的是代码。
  1. void _textControl_TextFrameClicked(object sender, TextFrameEventArgs e)
  2.         {
  3.             _textFrame = e.TextFrame;
  4.         }
复制代码

_textFrame是类变量,当光标定位到TextFrame,_textFrame能拿到值,可以识别其中的文本,
但是当光标定位到TextFrame之外的区域,类变量_textFrame无法置为null,任然可以识别的到,这不合适
回复 使用道具 举报
gw0506
超级版主   /  发表于:2015-8-26 15:07:00
地板
那是代码逻辑问题。你需要这个时机给他置为null。 比如你什么地方用它了,用完了清一次。或者找个deactive事件清一次。
另外,他就是个引用类型的变量,清不清空,问题不大吧。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-9-2 10:22:00
5#
回复 3楼mindrayguowei的帖子

为了给你提供更优质的服务,请对本次服务进行评分。我们会认真对待你提出的宝贵意见,谢谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部