以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  在keydown事件中有关输入值应如何取值?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=3653)

--  作者:baoxyang
--  发布时间:2009/7/22 17:06:00
--  在keydown事件中有关输入值应如何取值?
在窗口中文本框Textbox1中,Keydown事件中有如下代码:
If e.KeyCode = Keys.Enter then
    dim s as string = e.Sender.value
    e.form.controls("textbox15").value = s
    e.Cancel = True 
end if

当文本框Textbox1输入12345,按回车时,但结果是e.form.controls("textbox15").value 是空值,而不是12345,除非光标离开当文本框Textbox1后,再使用光标移到文本框Textbox1中再回车时,e.form.controls("textbox15").value 才是12345.请教这是怎么回事呀?可否达到第一次(光标未离开控件前)按回车时,可以传递文本框输入的值呢?

--  作者:mr725
--  发布时间:2009/7/22 18:10:00
--  
If e.form.controls("textbox1").text >"" then         
    e.form.controls("textbox15").value = e.form.controls("textbox1").text
else
    e.form.controls("textbox15").value =""
end if

放在textbox1 的 valuechanged里
[此贴子已经被作者于2009-7-22 18:13:22编辑过]

--  作者:baoxyang
--  发布时间:2009/7/22 18:55:00
--  
哦,这个我知道,其实上面代码不是我的目的,主要是为什么取不值,我另有其它用途,上面只是随便举的一个例子罢了.没有说清楚.误会!sorry!
--  作者:baoxyang
--  发布时间:2009/7/22 20:13:00
--  
关键问题是,为什么第一次没有离开文本输入框时,取不了值呢?
--  作者:shaof
--  发布时间:2009/7/22 20:28:00
--  
将dim s as string = e.Sender.value
改成dim s as string = e.Sender.text

--  作者:mr725
--  发布时间:2009/7/22 20:46:00
--  
原因我解释不了。~  5楼的可以吗?! 试了下:  5楼的可以
另外,要取到值的话,在mouseup里的:
e.form.controls("textbox15").value = e.form.controls("textbox1").text    直接搞定
[此贴子已经被作者于2009-7-22 21:18:03编辑过]

--  作者:mr725
--  发布时间:2009/7/22 21:28:00
--  
知道原因了: textbox1中,原始的value 等于空值,当你输入12345时,enter的结果送出原来的value空值到textbox15里所以,textbox15这时的值也是空值; 同时,textbox1中value的值变为12345了,当重新进入textbox1后,再按enter后,textbox1中的value(12345)才会送到textbox15里。
当把 e.Sender.value 改为 e.Sender.text 后,enter的结果直接把textbox1的text(12345)送到textbox15里了。
这样解释不知对否?  呵呵···
[此贴子已经被作者于2009-7-22 21:31:51编辑过]

--  作者:baoxyang
--  发布时间:2009/7/22 21:42:00
--  
谢了!OK