VB 替换TEXT控件里面某行的内容,该如何解决

VB 替换TEXT控件里面某行的内容
如题.比如说我的TEXT里面有如下内容:
1234
12345
123456
回车后我要把12345换成54321(只修改第二行)

先跟大家说说我的解决方案:
1. 用VB内置的REPLCE函数,可以更换字符串中的某个字符.但这个函数有这个问题,会把起始位置前的字符全部截掉.所以抛弃
2. 用sendmessage函数,得出输入字符的起始位置,再得出这一行有多少个字符.把之前的全取出来,再把之后的取出来,处理好后再全部连接起来.但这个方案有个不好的地方,就是如果TEXT里面的内容很多的话,这个方案就会有些慢,尤其是别人回一下车,就有延迟,会造成一些不好的感觉.

所以在些求高手一个解决方案.不写代码也可以.如果不懂的别灌水了!(不知道sendmessage里面有没有常数是修改某行内容的)

------解决方案--------------------
如果只修改第二行的话
VB code
Private Sub Command1_Click()
Dim s$()
s = Split(Form1.Text1.Text, vbCrLf)
s(1) = Replace(s(1), "12345", "54321")
MsgBox Join(s, vbCrLf)
End Sub

------解决方案--------------------
VB code

dim StrAry() as string
'index 要修改的行,你的第2行
'value 要赋的值,你的54321
with text1
strary = split(.text)
strAry(index-1) = value
.text = join(StrAry,vbcrlf)
end with
'erase StrAry

------解决方案--------------------
之前1楼的代码是针对指定行里面指定字符串替换。如果是整行替换的话,稍加修改。
方法1:
VB code

Private Sub Command1_Click()
Dim s$(), i& 'i指定行
i = 2
s = Split(Form1.Text1.Text, vbCrLf)
s(i - 1) = "54321" '替换值
MsgBox Join(s, vbCrLf)
End Sub

------解决方案--------------------
Option Explicit
Dim aa$, i&, S
Private Sub Command1_Click()
aa = "1234" & vbCrLf & "12345" & vbCrLf & "123456"
S = Split(aa, vbCrLf)
S(1) = StrReverse(S(1))
aa = Join(S, vbCrLf)
MsgBox aa
End Sub