您的位置:首页 > 编程语言 > C#

C#中获取文本框中光标所在位置

2013-04-25 11:39 645 查看
private void ScrollPosition(object sender, EventArgs e)

{

Point p = GetCursorPos(this.txtDate.Handle.ToInt32());

panel1.AutoScrollPosition = new Point(p.X, p.Y);

}

const int EM_GETSEL = 0xB0;

const int EM_LINEFROMCHAR = 0xC9;

const int EM_LINEINDEX = 0xBB;

[DllImport("user32.dll", EntryPoint = "SendMessage")]

public static extern int SendMessage(

int hwnd,

int wMsg,

int wParam,

ref int lParam

);

private Point GetCursorPos(int TextHwnd)

{

int i = 0, j = 0, k = 0;

int lParam = 0, wParam = 0;

i = SendMessage(TextHwnd, EM_GETSEL, wParam, ref lParam);

j = i / 65536;

int lineNo = SendMessage(TextHwnd, EM_LINEFROMCHAR, j, ref lParam) + 1;

k = SendMessage(TextHwnd, EM_LINEINDEX, -1, ref lParam);

int colNo = j - k + 1;

Point ret = new Point(lineNo, colNo);

return ret;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: