找回密码
 立即注册

QQ登录

只需一步,快速开始

nisnfox

论坛元老

14

主题

46

帖子

5062

积分

论坛元老

积分
5062

活字格认证

nisnfox
论坛元老   /  发表于:2012-4-16 11:59  /   查看:8544  /  回复:11
tx14 怎么取 TextField 的X Y 的座标 Point

11 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-4-16 14:05:00
沙发

回复 1# nisnfox 的帖子

nisnfox 你好,
可以通过获取当前点击 TextField 第一个字符的 InputPosition 去获取 Point:

  1.         private void textControl1_TextFieldClicked(object sender, TXTextControl.TextFieldEventArgs e)
  2.         {
  3.             //获取当前点击 TextField
  4.             TXTextControl.TextField currentTextFiled = e.TextField;

  5.             //获取当前行、列及 Page 索引
  6.             int currentPageIndex=this.textControl1.InputPosition.Page;
  7.             int startPositionX = currentTextFiled.Start;
  8.             int startPositionY = this.textControl1.InputPosition.Line;

  9.             //根据索引创建 InputPosition
  10.             TXTextControl.InputPosition startPosition=new TXTextControl.InputPosition(currentPageIndex ,startPositionX ,startPositionY );

  11.             //通过 ImputPostion 获取当前点击 TextField Point
  12.             Point editorLocation = startPosition.Location;
  13.         }
复制代码
回复 使用道具 举报
nisnfox
论坛元老   /  发表于:2012-4-16 16:59:00
板凳
不对
X=-1
Y=-1
达不到上面的效果
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-4-16 17:33:00
地板

回复 3# nisnfox 的帖子

nisnfox 你好,我在楼上代码中做了修改,如果有多行,楼主可以加逻辑判断。

  1. //获取当前点击 TextField
  2.             TXTextControl.TextField currentTextFiled = e.TextField;

  3.             //获取当前行、列及 Page 索引
  4.             int currentPageIndex=this.textControl1.InputPosition.Page;
  5.             int lineLength = this.textControl1.Lines[1].Length ;
  6.             int startPositionY = currentTextFiled.Start;
  7.             
  8.             //int startPositionX = this.textControl1.InputPosition.Line%lineLength;
  9.             int startPositionX = this.textControl1.InputPosition.Line;

  10.             //根据索引创建 InputPosition
  11.             TXTextControl.InputPosition startPosition=new TXTextControl.InputPosition(currentPageIndex ,startPositionX ,startPositionY );

  12.             this.textControl1.InputPosition = startPosition;

  13.             //通过 ImputPostion 获取当前点击 TextField Point
  14.             Point editorLocation = this.textControl1.InputPosition.Location;  
复制代码
回复 使用道具 举报
nisnfox
论坛元老   /  发表于:2012-4-16 17:57:00
5#
大师还是不对!
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-4-17 09:09:00
6#
Morning nisnfox ,
请参考我的 Demo,并指出其中的缺陷 ,感谢配合:
4056.zip (43.59 KB, 下载次数: 209)
回复 使用道具 举报
nisnfox
论坛元老   /  发表于:2012-4-17 09:25:00
7#
你的不是我想要的东西
请看一看

http://gcdn.grapecity.com/showtopic-3647.html
这个贴子 附件: TxWin6.zip (2012-3-12 17:06:12, 21.78 K)
这个 文件看能用 TX14改写吗?

主要就是那个弹出定位!

PS:你们讨论对IE9支持不行,登陆 上传附件都不行。你如果能留下你的QQ号是贵姓就更好了,感谢你了
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-4-17 12:29:00
8#
nisnfox 你好,
1.感谢楼主的提示,请尝试下这个 Demo:
CustomUserControl.zip (50.31 KB, 下载次数: 186)
回复 使用道具 举报
nisnfox
论坛元老   /  发表于:2012-4-17 14:52:00
9#
你的这个DEMO还有问题,就是如果前几行是空行, 你的 this.textControl1.InputPosition = startPosition; 就会报   Invalid property value.
(01-0903)
回复 使用道具 举报
nisnfox
论坛元老   /  发表于:2012-4-17 15:01:00
10#
还有你的DEMO 如果是第二行文字,那point 的很不准,差很多,
第三行就更不用说了!
如能有电话就好了,我电话和你汇报下!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部