C#如何获取reachtextbox光标的屏幕坐标

C#如何获取reachtextbox光标的屏幕坐标,第1张

       #region 得到光标在屏幕上的位置

        [DllImport("user32")]

         public static extern bool GetCaretPos(out Point lpPoint);

         [DllImport("user32dll")]

         private static extern IntPtr GetForegroundWindow();

         [DllImport("user32dll")]

         private static extern IntPtr GetFocus();

         [DllImport("user32dll")]

         private static extern IntPtr AttachThreadInput(IntPtr idAttach, IntPtr idAttachTo, int fAttach);

         [DllImport("user32dll")]

         private static extern IntPtr GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId);

         [DllImport("kernel32dll")]

         private static extern IntPtr GetCurrentThreadId();

         [DllImport("user32dll")]

         private static extern void ClientToScreen(IntPtr hWnd, ref Point p);

         private Point CaretPos()

         {

             IntPtr ptr = GetForegroundWindow();

             Point p = new Point();

             //得到Caret在屏幕上的位置   

             if (ptrToInt32() != 0)

             {

                 IntPtr targetThreadID = GetWindowThreadProcessId(ptr, IntPtrZero);

                 IntPtr localThreadID = GetCurrentThreadId();

                 if (localThreadID != targetThreadID)

                 {

                     AttachThreadInput(localThreadID, targetThreadID, 1);

                     ptr = GetFocus();

                     if (ptrToInt32() != 0)

                     {

                         GetCaretPos(out   p);

                         ClientToScreen(ptr, ref   p);

                     }

                     AttachThreadInput(localThreadID, targetThreadID, 0);

                 }

             }

             return p;

         }

         #endregion

你可以调用WINAPI的一个函数,原型如下,hWnd就是要获取焦点的窗口(控件)句柄:

HWND WINAPI SetFocus(

  _In_opt_  HWND hWnd

);

VBA讲的是逻辑,那么从逻辑上来说

单元格的位置可以作为坐标来反馈,故可以使用Cells(SelectionRow, SelectionColumn)来确定当前光标所处的坐标,但这仅仅局限于一个单元格,cells(r,c)分别为行号和列号,通过坐标来判断光标所处位置。同样的,如果用cells(r,c+1)则可以 *** 作光标所处单元格的右数1个单元格的属性,并且在 *** 作右侧单元格时光标依然在当前的单元格上,所以如果下一条命令是cells(r+1,c)则可 *** 作下方相邻单元格,举个例子就是如果cells(r,c)是A1,cells(r,c+1)就是B1,cells(r+1,c)是A2

那么只要让textbox的值 = Cells(SelectionRow, SelectionColumn)Value 即=cells(r,c)的值,就可以让textbox显示出当前光标所处单元格的值。也就是无论你光标移动到哪里,窗体都能显示出光标所处的单元格的值

最后,你提到的“右击”,VBA无法判断左击还是右击,但无论你怎么击都属于“选中 or 激活”这个 *** 作,所以 无论你左击还是右击某个单元格,Cells(SelectionRow, SelectionColumn)都能指出当前激活单元格的坐标。

$("input:focus") //光标所在input元素的位置

$("textarea:focus")//光标所在textarea元素的位置

$("input:focus,textarea:focus")//光标所在元素的位置

ginput提供了一个十字光标使我们能更精确的选择我们所需要的位置,并返回坐标值。

函数调用形式为:

yi=spline(x,y,xi);

这个是根据己知的x,y数据,用样条函数插值出xi处的值。即由x,y的值计算出xi对应的函数值。

而pp=spline(x,y);

是由根据己知的x,y数据,求出它的样条函数表达式。

摘自: >

放三个文本框,text1你输入文字,text2,text3显示坐标:

Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Text2Text = X '横坐标

Text3Text = Y '纵坐标

End Sub

你应该在页面或某个控件中加mouseover事件,当鼠标进入后就触发这个事件 var event = windowevent || argumentscalleecallerarguments[0]; var x = eventclientX; var y= eventclientY;

以上就是关于C#如何获取reachtextbox光标的屏幕坐标全部的内容,包括:C#如何获取reachtextbox光标的屏幕坐标、用c#怎么获得当前得到焦点的输入框光标的坐标、VBA中如何获取当前鼠标位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9409595.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存