VB怎么显示给文本框自动排版
VB如何显示给文本框自动排版
作用就是把一篇排版很乱的文章按格式重排版
有一个 text1 和一个 command1
text1中的内容是【每段可能相连,也可能每段之间有一个或多个空行】
张三
李四
王五
或
张三
李四
王五
点击command1后,text1变为
张三 【全角空格全角空格张三】
【空行】
李四
王五
即每段前面加两个全角空格,每段之间加一个空行。我使用了一种代码,但始终有两个问题:
1.每次文章最后总会加一个空行并且加了两个全角空格
2.假如某行中有全角空格组成,那么这全角空格也会被当成一行【就比如上面我点了command1后再接着点,空行就会越来越多】
其实效果就如这个自动排版的网页http://www.pc354.com/soft/paiban.html 中的效果,但网页使用有限制,想改为程序随时可用的。但这个网页中的排版也存在同样的问题:1.每个空行也会加两个全角空格,2.假如最后一行有空行的话,不会删除,也会加上全角空行出来。
谢谢!平常工作需要,常需要排版,通过网页折腾有点麻烦。
------解决方案--------------------
先把你有问题的代码贴出来。
------解决方案--------------------
------解决方案--------------------
你重新建工程,窗体上只有 Text1、Check1、Command1,
代码只有我3楼的代码,再试试。
作用就是把一篇排版很乱的文章按格式重排版
有一个 text1 和一个 command1
text1中的内容是【每段可能相连,也可能每段之间有一个或多个空行】
张三
李四
王五
或
张三
李四
王五
点击command1后,text1变为
张三 【全角空格全角空格张三】
【空行】
李四
王五
即每段前面加两个全角空格,每段之间加一个空行。我使用了一种代码,但始终有两个问题:
1.每次文章最后总会加一个空行并且加了两个全角空格
2.假如某行中有全角空格组成,那么这全角空格也会被当成一行【就比如上面我点了command1后再接着点,空行就会越来越多】
其实效果就如这个自动排版的网页http://www.pc354.com/soft/paiban.html 中的效果,但网页使用有限制,想改为程序随时可用的。但这个网页中的排版也存在同样的问题:1.每个空行也会加两个全角空格,2.假如最后一行有空行的话,不会删除,也会加上全角空行出来。
谢谢!平常工作需要,常需要排版,通过网页折腾有点麻烦。
------解决方案--------------------
先把你有问题的代码贴出来。
------解决方案--------------------
Private Sub Command1_Click()
On Error Resume Next
Dim a() As String
Dim bHasContext As Boolean '前面是否已经出现了非空行,决定插入空格'
Dim strPrefix As String '行前空格'
Dim i As Long
bHasContext = False
strPrefix = IIf(Check1.Value, " ", " ")
a = Split(Text1.Text, vbCrLf)
For i = 0 To UBound(a)
a(i) = LTrim$(a(i)) '先去空格'
Next
For i = 0 To UBound(a)
If LenB(a(i)) <> 0 Then '去了空格就可以直接判断空行了'
a(i) = IIf(bHasContext, vbCrLf & vbCrLf, "") & strPrefix & a(i)
bHasContext = True
End If
Next
Text1.Text = Join(a, "") 'Delimiter 无内容,无论拼多少个空行还是没内容'
End Sub
------解决方案--------------------
你重新建工程,窗体上只有 Text1、Check1、Command1,
代码只有我3楼的代码,再试试。