以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于Replace的一件怪事  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12367)

--  作者:yangming
--  发布时间:2011/8/31 13:13:00
--  关于Replace的一件怪事

这是一个替换的代码,在做的过程中,发现,如果这样设置,就不操作

Dim t1,t2,t3 As String
t1=e.Form.Controls("TextBox1").text
t2=e.Form.Controls("TextBox2").text
t3=e.Form.Controls("TextBox3").text

t1=e.Form.Controls("TextBox1").text.Replace(t2,t3)

 

红字部分改成:t1=t1.Replace(t2,t3)   也不操作,只有改成下面蓝字这样才操作

 

e.Form.Controls("TextBox1").text = e.Form.Controls("TextBox1").text.Replace(t2,t3)

 

真是晕了,不明白为什么

 

 

 


--  作者:狐哥
--  发布时间:2011/8/31 13:28:00
--  

呀,还有这种方式,问下杨版.为什么要这样做?

前面已设置了T1的代码,后面再改一下,为何?

不好意思,我真不明白,解释一下如何.

试想一下,再设个T4不好吗?

 

我只是看这个有点怪,没有其它意思.


--  作者:blackzhu
--  发布时间:2011/8/31 13:30:00
--  
上次我碰到一个也是


Dim t1,t2,t3 As String
t1=e.Form.Controls("TextBox1").text

t1="登录着" & user.Name    也是不行


要这样 e.Form.Controls("TextBox1").text="登录着" & user.Name  才行


--  作者:yangming
--  发布时间:2011/8/31 13:32:00
--  
以下是引用狐哥在2011-8-31 13:28:00的发言:

呀,还有这种方式,问下杨版.为什么要这样做?

前面已设置了T1的代码,后面再改一下,为何?

不好意思,我真不明白,解释一下如何.

试想一下,再设个T4不好吗?

 

我只是看这个有点怪,没有其它意思.

我就是感觉奇怪啊,前面设了t1,但是后面如红字那样写就是不反应,非要如蓝字那样写才可以,呵,我设t1,t2,就是为了在最后一段代码短一点,不然就要好长了,呵


--  作者:狐哥
--  发布时间:2011/8/31 13:39:00
--  
哈哈,哪就再设个T4
--  作者:yangming
--  发布时间:2011/8/31 13:50:00
--  
就是没搞明白,等贺老师来看看吧,到底是什么原因了
--  作者:czy
--  发布时间:2011/8/31 13:54:00
--  

很简单啊,现在的t1只是个变量而已,其结果只能保存在变量中。

如果想写入TextBox1控件,肯定要后都才行了。


--  作者:hhbb
--  发布时间:2011/8/31 14:23:00
--  
以下是引用yangming在2011-8-31 13:13:00的发言:

这是一个替换的代码,在做的过程中,发现,如果这样设置,就不操作

Dim t1,t2,t3 As String
t1=e.Form.Controls("TextBox1").text
t2=e.Form.Controls("TextBox2").text
t3=e.Form.Controls("TextBox3").text

t1=e.Form.Controls("TextBox1").text.Replace(t2,t3)

 

红字部分改成:t1=t1.Replace(t2,t3)   也不操作,只有改成下面蓝字这样才操作

 

e.Form.Controls("TextBox1").text = e.Form.Controls("TextBox1").text.Replace(t2,t3)

 其实已执行了!只不过你没见t1的值发生变化而已


t1= e.Form.Controls("TextBox1").text.Replace(t2,t3)  


\'代码意义:赋值 字符变量 t1为: t1.Replace(t2,t3)


e.Form.Controls("TextBox1").text = e.Form.Controls("TextBox1").text.Replace(t2,t3)


\'代码意义:把TextBox1的Text值 显示为 : t1.Replace(t2,t3)

 





--  作者:yangming
--  发布时间:2011/8/31 14:27:00
--  
谢谢大家,呵呵,搞明白了!
--  作者:hhbb
--  发布时间:2011/8/31 14:29:00
--  
也就是说:
e.Form.Controls("TextBox1").text在[=]前面或后面意义是不一样的