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

有时候一个,有时候不只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

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,运行工程;

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

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-21
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本回答被提问者采纳
第2个回答  2011-08-28
Char = Mid(s, Length, 1)''这里老报错
如果是你所说的是因为有空格的原因的话,用ltrim()
或者直接用TRIM()去除二边的空格
第3个回答  2011-08-30
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即可。
第4个回答  2011-08-21
我试下:
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

‘测试后可用!!!!!

======================================
您的问题==我的课题 奉献知识==辉煌生命
黑龙江省 张志晨
========================================

vb 如何删除文本框最后一行空行?
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...

vb 怎么删除文本框最后一行空行?
建Text1, 改Multiline=True,再建Command1.代码如下。=== Private Sub Command1_Click()If Right(Text1.Text, 2) = vbCrLf Then Text1.Text = Left(Text1.Text, Len(Text1.Text) - 1)End Sub

用VB删除txt文件最后一行
'首行空行,是InStr(s, vbCrLf)=1 '末行空行,是InStrRev(s, vbCrLf)=Len(s)-1 '其他行出现空行,是InStr(s, vbCrLf & vbCrLf)>0 Private Sub Command1_Click()Dim s As String, b As Boolean s = Text1 Do Until InStr(s, vbCrLf & vbCrLf) = 0 s = Replace(s, vbCrLf & vbCrL...

用vb如何如何自动清除文本文件中的空行?
Private Sub Command1_Click()Dim tx() As String, tmp As String, n As Integer '首先将txt文件里面非空行的内容读进数组tx里 Open "d:\\a.txt" For Input As #1 n = 0 Do While Not EOF(1)Line Input #1, tmp If tmp <> "" Then ReDim Preserve tx(n)tx(n) = tmp n = n ...

vb怎样在文本文件每个段落间空一行?
Private Sub Command1_Click()'把txt载入到文本框或者变量中 Text1.Text = Replace(Text1.Text, vbCrLf, vbCrLf & vbCrLf)'输出文本框或者变量即可 End Sub

VB 如何删除文本框第一行的空行?
Text1.Text = Replace(Text1.Text, " " + vbCrLf, vbCrLf) '清除换行符前的空格。Loop Text1.Text = Replace(Text1.Text, vbCrLf + vbCrLf, vbCrLf) '清除行与行之间的空行。If InStr(Text1.Text, vbCrLf) = 1 Then Text1.Text = Replace(Text1.Text, vbCrLf, "", 1, 1)'清除为首...

vb如何删除某一行,如第一行或者空行
Dim s As String Open "31029600.txt" For Input As #1 Open "31029600_1.txt" For Output As #2 Do Until EOF(1)Line Input #1, s If Val(s) <> 0 Then Print #2, s Loop Close #2 Close #1

vb 删除指定的txt中的内容-疑惑
这样开头就不会出现空行了 End IfLoopText1.Text = qeClose #1End SubPrivate Sub Command1_Click()Dim st() As StringDim qe As StringDim i As Integerst = Split(Text1.Text, vbCrLf) '文本框内容按回车符分割为数组For i = UBound(st) To 0 Step -1 '数组从后往前遍历 If...

VB 如何判断文本框首行为空?
用split重新解离一次回车符(\\r\\n),把空行都去掉(c#代码):string[] ss=textBox1.Text.Split('\\r\\n');textBox.Text="";foreach(string s in ss){ if(s.Trim()!=""){ textBox.Text += s + "\\r\\n";} }

VB 如何在多行文本框的每一行下面插入几行空行?
空行 函数是VbCrlf text1 = "123" & vbcrlf & vbcrlf & "456"123和456之间就间隔两行

相似回答