
#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中如何获取当前鼠标位置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)