我的textbox 设置为多行显示了,如果我输入的内容超出了textbox的高度,即出现了滚动条,我把滚动条拖到中间的时候,请问怎么获取当前画面上能看到的行数(数据)。(只要当前能看到的)
winform 程序,不好意思 忘记说了
给几个函数和思路,希望有帮助:
[DllImport("user32.dll", EntryPoint = "SendMessageA")]
private static extern int SendMessage(IntPtr hwnd, int wMsg, IntPtr wParam, string lParam);
int EM_GETLINECOUNT = 0x00BA;//获取总行数
int EM_GETFIRSTVISIBLELINE = 0x00CE; //当前显示在textbox1中第一行的行号,0开始算
int totalLineCount = SendMessage(this.textBox1.Handle, EM_GETLINECOUNT, IntPtr.Zero, "");
int currentLineNo = SendMessage(this.textBox1.Handle, EM_GETFIRSTVISIBLELINE, IntPtr.Zero, "");
int lines = textBox1.Height / this.textBox1.Font.Height; // textbox内可显示的行数,这个不精确有时有1行的误差
js获取如下参数:
textbox的高度
line-height
然后除一下
这个比较奇葩
您好楼主,看看能不能获取一下textbox的text,
内容中应该有换行的标识符,类似"/n/r"类似的,
然后判断标识符的个数来判断行数可以吗?
关键就是不知道哪行是显示出来的,哪行没有显示
@V587: 您看能不能把行数跟滚动条做一个匹配,
当滚动条的Value到多少值,或者那个范围,对应一个行号