首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

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

2012-03-17 
VB 替换TEXT控件里面某行的内容如题.比如说我的TEXT里面有如下内容:123412345123456回车后我要把12345换成

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 要赋的值,你的54321with text1strary = 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 = 2s = 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

热点排行