C#如何获得文本框中焦点所在的行数

调用API库:

[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);

在函数里调用API函数即可:

int EM_LINEINDEX = 0xBB;
int EM_LINEFROMCHAR = 0xC9;
int EM_GETSEL = 0xB0;
int EM_GETLINE = 0xC4;

//通过API完成很简单的 
//通过向文本框传递EM_LINEFROMCHAR消息可以得到光标所在的行数 
int Row = (int)SendMessage(txtSendData.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);

 

转载于:https://www.cnblogs.com/zpehome/p/3152630.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值