C# 能不能获取文本框光标当前所在的位置,及所在的行

比如我在文本框里输入了一段文字,有很多行,当我想修改其中一行上的文字时,我想获取当前光标所在的行,不知C#能不能实现这个功能!... 比如我在文本框里输入了一段文字,有很多行,当我想修改其中一行上的文字时,我想获取当前光标所在的行,不知C#能不能实现这个功能! 展开
 我来答
百度网友a97606d
2010-12-30 · TA获得超过190个赞
知道小有建树答主
回答量:210
采纳率:0%
帮助的人:156万
展开全部
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, StringBuilder lParam);

[DllImport("user32 ")]
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);

private void button2_Click(object sender, EventArgs e)
{
int EM_LINEINDEX = 0xBB;
int EM_LINEFROMCHAR = 0xC9;
int EM_GETSEL = 0xB0;
int EM_GETLINE = 0xC4;

//通过API完成很简单的
//通过向文本框传递EM_LINEFROMCHAR消息可以得到光标所在的行数
int Row = (int)SendMessage(textBox1.Handle, EM_LINEFROMCHAR, -1, 0);

////通过向文本框传递EM_GETSEL消息可以得到编辑控件中一段选定内容的起点与终点字符的个数
//int s = (int)SendMessage(textBox1.Handle, EM_GETSEL, 0, 0);
////通过向文本框传递EM_GETSEL消息可以得到每一行的第一个字符在全文中的字符序号
//int li = (int)SendMessage(textBox1.Handle, EM_LINEINDEX, -1, 0);
//int Col = (s & 0xffff) - li + 1;

StringBuilder currentLine = new StringBuilder(256);
SendMessage(textBox1.Handle, EM_GETLINE, Row, currentLine);
MessageBox.Show(currentLine.ToString());
}
a8583850
2010-12-31 · TA获得超过400个赞
知道答主
回答量:148
采纳率:0%
帮助的人:60.4万
展开全部
C#有个Focus()方法~是获取当前文本的焦点·就是光标
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式