同志,我有个想法啦, MyString = vbCrLf '定义一行的数据 '下面的N等于你需要的最多的文本行数 for i= 1 to n text1.text=text1.text & MyString next '经过上面的初始化,就得到了一个你所需要的文本区域. 记得曾经看过这样一篇很经典的代码:如何获取文本框第N行数据,在SENDMESSAGE里面用的参数好象是EM_GETLINE,那么很好办了,我们把代码稍加修,并且把参数改换成EM_SETLINE是不是就可以了呢.这样就可以实现一起修改某几行的数据而不影响其他行.自己写写吧,呵呵。
也有一个比较笨蛋的方法,你可以试试,和上面方法一样先把文本框设置为多行模式 测试代码需要一个CMDBOX,一个TEXTBOX,名称默认,TEXTBOX设置为多行 Private Sub Command1_Click() Dim temp As String '定义一个变量,存储你要输入的数据 temp = time With Text1 .SelStart = 9 ' Len(.Text) '设置要插入的位置,就麻烦在这里了,你得事先计算出插入位置的数字 .SelText = temp '设置文字,我所看的原文是.SelText = vbNewLine & temp意思是先起新行,也就是换行了.如果你需要输入后换行,可以.SelText = temp & vbcrlf End With自己加工一下吧End Sub
用个数组来记录,如:Dim a() As String, n As Integer Private Sub Command1_Click() If Len(Trim(a(n))) = 20 Then n = n + 2 writetext n, Chr(Int(Rnd * 27 + 65)), Chr(Int(Rnd * 27 + 65)) End SubPrivate Sub Form_Load() Dim i As Integer ReDim a(11) For i = 0 To 11 a(i) = Space(20) Next Text1.Text = Join(a, vbCrLf) n = 0 End SubSub writetext(ByVal r As Integer, x As String, y As String) Mid(a(r), Len(Trim(a(r))) + 1, Len(x)) = x Mid(a(r + 1), Len(Trim(a(r + 1))) + 1, Len(y)) = y Text1.Text = Join(a, vbCrLf) End Sub
另外不用API也可以解决。。嘿嘿,多用几个文本框就行,或者呢。。干脆用LISTBOX,何必用TEXTBOX。。
MyString = vbCrLf '定义一行的数据
'下面的N等于你需要的最多的文本行数
for i= 1 to n
text1.text=text1.text & MyString
next
'经过上面的初始化,就得到了一个你所需要的文本区域.
记得曾经看过这样一篇很经典的代码:如何获取文本框第N行数据,在SENDMESSAGE里面用的参数好象是EM_GETLINE,那么很好办了,我们把代码稍加修,并且把参数改换成EM_SETLINE是不是就可以了呢.这样就可以实现一起修改某几行的数据而不影响其他行.自己写写吧,呵呵。
测试代码需要一个CMDBOX,一个TEXTBOX,名称默认,TEXTBOX设置为多行
Private Sub Command1_Click()
Dim temp As String '定义一个变量,存储你要输入的数据
temp = time With Text1
.SelStart = 9 ' Len(.Text) '设置要插入的位置,就麻烦在这里了,你得事先计算出插入位置的数字
.SelText = temp '设置文字,我所看的原文是.SelText = vbNewLine & temp意思是先起新行,也就是换行了.如果你需要输入后换行,可以.SelText = temp & vbcrlf
End With自己加工一下吧End Sub
Private Sub Command1_Click()
If Len(Trim(a(n))) = 20 Then n = n + 2
writetext n, Chr(Int(Rnd * 27 + 65)), Chr(Int(Rnd * 27 + 65))
End SubPrivate Sub Form_Load()
Dim i As Integer
ReDim a(11)
For i = 0 To 11
a(i) = Space(20)
Next
Text1.Text = Join(a, vbCrLf)
n = 0
End SubSub writetext(ByVal r As Integer, x As String, y As String)
Mid(a(r), Len(Trim(a(r))) + 1, Len(x)) = x
Mid(a(r + 1), Len(Trim(a(r + 1))) + 1, Len(y)) = y
Text1.Text = Join(a, vbCrLf)
End Sub