求VB高手:求解关于vbCrLf,chr(13),chr(10),chr(13)+chr(10)在print方法和在text里的问题~!

VB:为什么vbCrLf在text里或Print方法都可以换行,而chr(10)或chr(13)在print方法可以换行在text里却不可以换行?为什么chr(13)+c... VB:为什么vbCrLf 在text里或Print方法都可以换行,而chr(10)或chr(13)在print方法可以换行在text里却不可以换行? 为什么chr(13)+chr(10)在text里可以换行而chr(10)+chr(13)不可以?为什么vbCrLf 在print方法换一行而chr(13)+chr(10)换2行? 展开
 我来答
hmlky
2011-05-19 · TA获得超过1369个赞
知道小有建树答主
回答量:239
采纳率:0%
帮助的人:363万
展开全部
1.Print "5" & Chr(13) & Chr(10) & "7" 换了一行。
2.Print "5" & Chr(10) & Chr(13) & "7" 换了两行。
第一个因为Chr(13)+Chr(10)(等价于vbCrLf)为标准的
换下一行,所以只换一行。
第二个为非标准的,Chr(10)和Chr(13)顺序相反,他们的
后一个和前一个都不能找到整个的换下一行,即不能凑成
vbCrLf,所以Print以二进制的形式,都表示成换行,
(编译器自动凑成一对,即Chr(13)+Chr(10))
所以换了两行,你把上面的Chr(10)或者Chr(13)去掉一个,
就是换一行了。

至于vbCrlf换两行只是编译器自动识别的,让他多换一行。
假如这样:
Dim a As String
a = vbCrLf
Print "5" & a & "7"
编译器就识别不出vbCrlf,就只换一行了。

Text1.Text = "5" & Chr(13) & Chr(10) & "7" (对)
Text1.Text = "5" & Chr(10) & Chr(13) & "7" (错)
我想你应该知道Text是文本框的一个属性,属性其实
就是方法(函数)符号重载后变成的一种表达方式。
写成函数就是
Call Text1.Text( "5" & Chr(13) & Chr(10) & "7" )
(当然,你这样写是不对的,只是便于理解。)
然后Text函数调用API函数SendMessage或SetWindowText
将窗口标题改变,等于你写的东西,只是让编译器原封不动
的传给API了,没有像Print那样,编译器进行了处理,
由于Chr(10) & Chr(13)不表示换行,所以就显示出
其他的字符了。
gaphy2010
2011-05-18 · TA获得超过5848个赞
知道小有建树答主
回答量:786
采纳率:0%
帮助的人:825万
展开全部
正如每个人对同一件事的反应未必一样,text 和 Print 对应不同的使用范畴,他们对回车换行的算法不一样也不足为奇。既然你发现了这个规律,就好好记住它,好好利用它,没必要叫微软把这个"Bug"补丁掉吧.........(乱说一通,别砸!)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式