现在有这样的问题:用户在多行文本框里输入了许多的字符(在行结尾没有回车),
我如何把每一行的数据读出来?
我在RichTextBox和TextBox试过好象都没有这个读行的功能。读行的目的是希望在填充Excel报表的时候能够智能的换行。
智能的换行:客户输入:
结帖方法:点击帖子右上的“管理”链接,进入管理页面,在要给分的回复后的文本框中填写分数,然后输入自己的密码,点击“给分”按钮。客户希望Excel显示如下:
------------------------------------
结帖方法:点击帖子右上的“管理”
------------------------------------
链接,进入管理页面,在要给分的回复后
------------------------------------
的文本框中填写分数,然后输入自己的密
------------------------------------
码,点击“给分”按钮。
------------------------------------
解释一下:希望在换行的时候考虑到数字、单词、标点的换行规则。谢谢~
我如何把每一行的数据读出来?
我在RichTextBox和TextBox试过好象都没有这个读行的功能。读行的目的是希望在填充Excel报表的时候能够智能的换行。
智能的换行:客户输入:
结帖方法:点击帖子右上的“管理”链接,进入管理页面,在要给分的回复后的文本框中填写分数,然后输入自己的密码,点击“给分”按钮。客户希望Excel显示如下:
------------------------------------
结帖方法:点击帖子右上的“管理”
------------------------------------
链接,进入管理页面,在要给分的回复后
------------------------------------
的文本框中填写分数,然后输入自己的密
------------------------------------
码,点击“给分”按钮。
------------------------------------
解释一下:希望在换行的时候考虑到数字、单词、标点的换行规则。谢谢~
比如SubString(0,10);SubString(10,10);SubString(20,10);
然后把字符串读到byte中
按照这个长度截取
如果用substring的话
中英文的长度不同可能会显示不正常
做的要跟word差不多
可能得判断字符的asc码
但好象要考虑非常多的问题。
如果能够直接先写到一个RichTextBox中,
然后通过readLine的方式读取就好了哦~`
但好象没有readLine这样的方法哦~`
逻辑行按回车或换行符分割,即textbox.Lines[i]属性即可返回某一行
物理行则是文本框显示的一行,如果文本框不自动换行,则和逻辑行一样,
但如果自动换行,则可能不一样,例如,因为某一逻辑行太长,可能自动换行了,
那么一逻辑行可能有多个物理行。去物理行没有直接办法,需要直接调用WIN32
public static string GetLine(TextBoxBase editControl, int lineIndex)
{
int charIndex = (int)SendMessage(editControl.Handle, 0x00BB, lineIndex, 0);
if (charIndex == -1) return null;
int lineLen = (int)SendMessage(editControl.Handle, 0x00C1, charIndex, 0);
if (lineLen < 1 || lineLen > 65535) return null;
StringBuilder sb = new StringBuilder(" ", lineLen);
sb[0] = (char)lineLen;
int copyed = (int)SendMessage(editControl.Handle, 0x00C4, lineIndex, sb);
if (copyed == 0) return null;
return sb.ToString(0, copyed);
} [DllImport("user32.dll")]
public static extern IntPtr SendMessage(
IntPtr hWnd, // handle to destination window
int Msg, // message
int wParam, // first message parameter
int lParam // second message parameter
); [DllImport("user32.dll", CharSet=CharSet.Auto)]
public static extern IntPtr SendMessage(IntPtr hWnd, int msg, int wParam, System.Text.StringBuilder lParam);
------------------------------------
我的团队:www.51team.com
欢迎访问,有志者共谋事====CSDN 小助手 V2.0 2005年10月16日发布====
CSDN小助手是一款脱离浏览器也可以访问Csdn论坛的软件
界面:http://blog.csdn.net/Qqwwee_Com/archive/2005/10/16/504620.aspx
下载:http://szlawbook.com/csdnv2/csdnv2.rar为神六喝彩,向所有科技工作者致敬!
拒绝日货。
谢谢你的指点啊,
现在折行的问题解决了,
但是我不知道里面到底有多少行??
string[] line=richtextbox1.text.split('\n')
{
return (int)SendMessage(editControl.Handle, 0x00BA, 0, 0);
}