vb 如何删除文本框最后一行空行?

有时候一个,有时候不只1个.富文本框网上代码都不行.要把光标移到有文字的最后一行尾处.不行.PrivateSubCommand1_Click()IfRight(Text1... 有时候一个,有时候不只1个. 富文本框
网上代码都不行.
要把光标移到有文字的最后一行尾处.

不行.
Private Sub Command1_Click()
If Right(Text1.Text, 2) = vbCrLf Then Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
End Sub

Function myTrim(ByVal s As String) As String'''这函数也不行老报错
Dim Length As Long
Dim Char As String
If s <> "" Then
s = Trim(s)
Length = Len(s) + 1
Do
Length = Length - 1
Char = Mid(s, Length, 1)''这里老报错
Loop Until Char <> vbCr And Char <> vbLf
myTrim = Mid(s, 1, Length)
End If
End Function
展开
 我来答
sbj518
2015-07-27 · TA获得超过4.4万个赞
知道大有可为答主
回答量:1.1万
采纳率:81%
帮助的人:5224万
展开全部

1、打开Visual Basic 6.0软件,新建一个标准exe工程,窗体设计界面上添加一个Text1,一个Command控件;

2、设计Text1的Multiline属性值为True;

3、窗体上进入代码编辑界面,代码如下:

Private Sub Command1_Click()
If Right(Text1.Text, 2) = vbCrLf Then Text1.Text = Left(Text1.Text, Len(Text1.Text) - 2)
End Sub

Private Sub Form_Load()
Dim str As String
str = ""
str = str & "1" & vbCrLf
str = str & "2" & vbCrLf
str = str & vbCrLf
str = str & "3" & vbCrLf
str = str & "4" & vbCrLf
str = str & vbCrLf
str = str & "5" & vbCrLf
str = str & "6" & vbCrLf
str = str & vbCrLf
Text1.Text = str
End Sub

4、单击运行按钮或者按下F5,运行工程;

点击按钮前后发现最后一行空行被删除了:

lxz1969
2011-08-21 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8524
采纳率:33%
帮助的人:1.1亿
展开全部
vbcrlf是两个字符,因此
Private Sub Command1_Click()
If Right(Text1.Text, 2) = vbCrLf Then Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)
End Sub
中最后应该是-2,即
Private Sub Command1_Click()
If Right(Text1.Text, 2) = vbCrLf Then Text1.Text = Left(Text1.Text, Len(Text1.Text) - 2)
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ndsasdf
2011-08-28 · 超过13用户采纳过TA的回答
知道答主
回答量:69
采纳率:100%
帮助的人:14万
展开全部
Char = Mid(s, Length, 1)''这里老报错
如果是你所说的是因为有空格的原因的话,用ltrim()
或者直接用TRIM()去除二边的空格
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
abcnyzay
2011-08-30 · TA获得超过1377个赞
知道小有建树答主
回答量:928
采纳率:100%
帮助的人:1027万
展开全部
Private Sub Command1_Click()
Do While InStr(vbCrLf, Right(RichTextBox1.Text, 1)) > 0
RichTextBox1.Text = Left(RichTextBox1.Text, Len(RichTextBox1.Text) - 1)
Loop
'RichTextBox1.Text = Trim(RichTextBox1.Text)'去掉所有空格
'RichTextBox1.Text = RTrim(RichTextBox1.Text) '去掉右边的空格
RichTextBox1.SetFocus
RichTextBox1.SelStart = Len(RichTextBox1.Text)
'RichTextBox1.SelStart = Len(RTrim(RichTextBox1.Text)) '不去掉空格
End Sub

Private Sub Command2_Click()
s = RichTextBox1.Text
Do While InStr(vbCrLf, Right(s, 1)) > 0
s = Left(s, Len(s) - 1)
Loop
's = Trim(s) '去掉所有空格
's = RTrim(s) '去掉右边的空格
RichTextBox1.SetFocus
RichTextBox1.SelStart = Len(s)
'RichTextBox1.SelStart = Len(RTrim(s)) '不去掉空格
End Sub
或用:
Do While Right(s, 2) = vbCrLf
s = Left(s, Len(s) - 2)
Loop
如果是Text控件,将RichTextBox1修改为Text1即可。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xlzzc
2011-08-21 · TA获得超过7301个赞
知道大有可为答主
回答量:4205
采纳率:50%
帮助的人:1418万
展开全部
我试下:
vbCrLf 是回车符!两个字符长
Trim 是去掉行首和行尾的空格

Function myTrim(ByVal s As String) As String''
Dim Length As Long
Dim Char As String
If s <> "" Then '如果s不为空
s = Trim(s) '就去掉两端的空格
Length = Len(s) + 1 '字符串的长度 再加上1 应该加上2
Do ‘循环
Length = Length - 1 ’长度自减1 就是最后一个字符的位置 应该加上2
Char = Mid(s, Length, 1)'' ‘想取行尾的字符?
Loop Until Char <> vbCr And Char <> vbLf ’判断那个字符是不是回车
               ‘从而得到想截取的字符串的长度
myTrim = Mid(s, 1, Length) ’提取意愿中长度的字符串,就是想去掉回车?? 调用自身,递归!!!!
End If
.................

修改:

Private Sub Command1_Click()
If Right(Text1.Text, 2) = vbCrLf Then Text1.Text = Left(Text1.Text, Len(Text1.Text) - 2)’减去2
End Sub

Function myTrim(ByVal s As String) As String '
Dim Length As Long
Dim Char As String
If s <> "" Then
s = Trim(s)
Length = Len(s) + 2
Do
Length = Length - 2
Char = Mid(s, Length, 1) ''
Loop Until Char <> vbCr And Char <> vbLf
myTrim = Mid(s, 1, Length)
End If
End Function

‘测试后可用!!!!!

======================================
您的问题==我的课题 奉献知识==辉煌生命
黑龙江省 张志晨
========================================
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式