以文本方式查看主题 - 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=95252) |
-- 作者:xietan417 -- 发布时间:2017/1/14 11:35:00 -- [求助]KEYDOWN事件! Dim n As WinForm.ComboBox = e.Form.Controls("ComboBox1") Dim b As WinForm.TextBox = e.Form.Controls("TextBox1") Dim nt As WinForm.Label = e.Form.Controls("Label1") Dim nt1 As WinForm.Label = e.Form.Controls("Label2") If e.keycode = Keys.Enter Then Dim dr As DataRow dr = DataTables("门店明细").Find("条形码 = \'" & b.value & "\' and 门店 = \'" & n.value & "\' ") If dr IsNot Nothing Then dr("tem") = 1 Else MessageBox.Show("条码不存在或者门店不相符") End If e.cancel = True Select Case str(0) End Select b.Value = "" End If 我在textbox的keydown事件里写这个代码居然还是跳到 MessageBox.Show("条码不存在或者门店不相符") 这行代码去! 但是做了一个button 去掉keycode 的部份代码却能正常判断!看不出来有什么差别啊!
|
-- 作者:有点蓝 -- 发布时间:2017/1/14 11:51:00 -- button代码是怎样的? 上面代码如果能查到数据肯定不会跳到MessageBox
|
-- 作者:xietan417 -- 发布时间:2017/1/14 11:55:00 -- 一样的!就是少一个KEYCODE Dim n As WinForm.ComboBox = e.Form.Controls("ComboBox1") Dim b As WinForm.TextBox = e.Form.Controls("TextBox1") Dim nt As WinForm.Label = e.Form.Controls("Label1") Dim nt1 As WinForm.Label = e.Form.Controls("Label2") If b.text = "" Then e.cancel = True Else Dim dr As DataRow dr = DataTables("门店明细").Find("条形码 = \'" & b.value & "\' and 门店 = \'" & n.value & "\' ") If dr IsNot Nothing Then dr("tem") = 1 Else MessageBox.Show("条码不存在或者门店不相符") End If e.cancel = True Select Case str(0) End Select b.Value = "" End If |
-- 作者:有点蓝 -- 发布时间:2017/1/14 12:01:00 -- b.value改为b.text试试 另外按钮里使用e.cancel没有意义
|
-- 作者:xietan417 -- 发布时间:2017/1/14 12:03:00 -- 我知道!我已经试了!果然是这个问题!晕死! |
-- 作者:xietan417 -- 发布时间:2017/1/14 12:05:00 -- 求科普一下原因!我拆开代码做测试!为什么text 可以value 不行?影响因素是什么? |
-- 作者:有点蓝 -- 发布时间:2017/1/14 14:07:00 -- 焦点离开文本框后text 的值才会写入value |
-- 作者:xietan417 -- 发布时间:2017/1/14 15:46:00 -- 哦!学习了! |