找回密码
 立即注册

QQ登录

只需一步,快速开始

zjl880

高级会员

4

主题

13

帖子

1081

积分

高级会员

积分
1081

活字格认证

zjl880
高级会员   /  发表于:2012-7-7 10:12  /   查看:6211  /  回复:3
问题:当鼠标移动到该区域,我怎么获取鼠标所在位置的TEXTFIELD

3 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2012-7-9 10:40:00
沙发
回复 1楼zjl880的帖子

获取方法请参考代码:

  1.         private void Form1_Load(object sender, EventArgs e)
  2.         {
  3.             TXTextControl.TextField field = new TXTextControl.TextField();
  4.             field.Text = "位置测试";
  5.             field.ID = 10;
  6.             this.textControl1.TextFields.Add(field);
  7.             this.textControl1.MouseMove += new MouseEventHandler(textControl1_MouseMove);
  8.         }

  9.         void textControl1_MouseMove(object sender, MouseEventArgs e)
  10.         {
  11.             TXTextControl.TextField field = GetTextFieldFromLocation(e.Location);
  12.             if (field!=null)
  13.             {
  14.                 MessageBox.Show(field.Text);
  15.             }
  16.         }
  17.         private TXTextControl.TextField GetTextFieldFromLocation(Point Location)
  18.         {
  19.             Graphics g = textControl1.CreateGraphics();
  20.             int iDpi = (int)(1440 / g.DpiX);
  21.             Point pTwipsLocation = new Point(Location.X * iDpi, Location.Y * iDpi);
  22.             foreach (TXTextControl.TextField tfField in textControl1.TextFields)
  23.             {
  24.                 Rectangle rFieldBounds = new Rectangle(tfField.Bounds.X - textControl1.ScrollLocation.X,
  25.                     tfField.Bounds.Y - textControl1.ScrollLocation.Y, tfField.Bounds.Width,
  26.                     tfField.Bounds.Height);

  27.                 if (pTwipsLocation.X >= rFieldBounds.X &amp;&amp; pTwipsLocation.X <= rFieldBounds.X
  28.                     + rFieldBounds.Width &amp;&amp; pTwipsLocation.Y >=
  29.                     rFieldBounds.Y &amp;&amp; pTwipsLocation.Y <= rFieldBounds.Y + rFieldBounds.Height)
  30.                 {
  31.                     return tfField;
  32.                 }
  33.             }
  34.             return null;
  35.         }
复制代码
回复 使用道具 举报
zjl880
高级会员   /  发表于:2012-7-10 15:06:00
板凳
谢谢
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2012-7-10 16:28:00
地板
回复 3楼zjl880的帖子

:share:
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部