求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行?
展开
2个回答
展开全部
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)不表示换行,所以就显示出
其他的字符了。
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)不表示换行,所以就显示出
其他的字符了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询