自动换行本身就不能算行数。 统计文本框内的实际行数,要用API: 声明: public const int WM_USER = 0x400; public const int EM_GETLINECOUNT = WM_USER + 10; [DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi)] public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);调用: int linecount= SendMessage(textBox1.Handle, EM_GETLINECOUNT, 0, 0);
for循环string[i],判断每个char,<0或者>255就认为是中文
Encoding.GetEncoding("gb2312").GetByteCount(string)是字节数,也可以用utf8等其他编码统计
string.Split('\n').Length是行数
“判断每个char, <0或者>255就认为是中文”这个方法不太好吧,如果是其他特殊字符呢
最好能有精确判断某个字符是否为汉字的方法
期待高手
Regex.Matchs(string,"[\u4e00-\u9fa5]").Count
统计文本框内的实际行数,要用API:
声明:
public const int WM_USER = 0x400;
public const int EM_GETLINECOUNT = WM_USER + 10;
[DllImport("user32", EntryPoint = "SendMessageA", CharSet = CharSet.Ansi)]
public static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);调用:
int linecount= SendMessage(textBox1.Handle, EM_GETLINECOUNT, 0, 0);
GOOD.好强大的sendmessage();
非常感谢大家帮助。。问题解决!!!