以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]我怎样才能让他不执行清空啊。气死了  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=161044)

--  作者:zto001
--  发布时间:2021/3/4 2:31:00
--  [求助]我怎样才能让他不执行清空啊。气死了
Dim 编码 As WinForm.TextBox = e.Form.Controls("编码")
If e.keycode = keys.enter Then
    
    Dim 数 As Integer=0
    
    For Each dr As DataRow In DataTables("万里牛WMS订单").sqlSelect("[运单号] = \'" & e.sender.text & "\'")
        数 =数 +1
        Dim 行 As Row=Tables("主页面_Table1").AddNew()
        行("快递单号")=e.sender.text
        行("备注")="线上订单号:"& dr("线上订单号")
        行("是否原单")= True
        行("商品编码")=dr("商品编码")
        行("商品名称")=dr("商品名称")
        行("商品数量")=dr("数量")
        行("原有数量")=dr("数量")
        行("货主")=dr("货主")
        行("日期")=Date.Now
    Next
    If 数=0 Then
        Output.Show("如果是0:"&数)
        编码 .Select
        编码 .SelectAll
    Else
        Output.Show("如果不是0"&数)
        e.sender.text= ""
        e.cancel = True
        e.sender.Select()
        
    End If
    Output.Show("完成了"&数)
    
End If


我扫描条码,如果在订单表里找到数据了就添加行并删除原有的数据准备下一条扫描,如果没有的话选择编码文本框。

        e.sender.text= ""
可以不管我用什么办法,他都执行了这一段代码在选择编码文本框,有没有办法解决?想死了,之前不更新程序代码就好好的,更新了我想了一晚上了,用了各种方法,就是不能阻止他清空。
而且我将结果打印出来,确定没有执行        Output.Show("如果不是0"&数)
        e.sender.text= ""这一段代码,执行的是        Output.Show("如果是0:"&数)
        编码 .Select
        编码 .SelectAll这一段代码

而且我能确定,其他地方没有这个文本框.value=""的代码了


--  作者:zto001
--  发布时间:2021/3/4 2:43:00
--  
活见鬼了,代码还是没变,居然跳转了还保存了文本框的内容,但是文本框内容不变成扫描的条码。
--  作者:zto001
--  发布时间:2021/3/4 2:45:00
--  
麻蛋的,这东西还带传染,其他文本框扫了后数字录进去有立马没了,但回车却保存了。多行文本框内录入了两行却没有文字
--  作者:zto001
--  发布时间:2021/3/4 2:51:00
--  
所有e.cancel = True的代码我都取消了,还是自动消掉了文字。我这里面代码就只有这么几段,咋回事?难道又有删掉这个窗口重做?
--  作者:zto001
--  发布时间:2021/3/4 3:06:00
--  
我试了下新窗口,新窗口不设置什么代码,放入两个组件 文本框跟按钮,并且设置了跳过TAB键,文本框的代码是判断是回车选择按钮。结果是:扫描后自动跳到下一个按钮,然后下一个按钮有跳回文本框,文本框又跳到按钮
文本框不设置任何代码的情况下啊。结果是:显示扫描内容,极短时间内清空。

以上情况在之前有设置过选择按钮代码后,再去修改代码会出现

--  作者:zto001
--  发布时间:2021/3/4 3:10:00
--  

        e.sender.text= ""
        e.cancel = True
        e.sender.Select()

这三个代码情况是一样的。

        e.sender.Select()
这个代码会清空文本框内的文字


        e.Form.Controls("Button1").Select()
这个代码会联系执行两次(不知道是连续执行两次还是来回跳动两轮)
每一段时间执行的情况会不一样

--  作者:zto001
--  发布时间:2021/3/4 3:14:00
--  
为啥这个代码得靠运气写,之前以为好了。唉
--  作者:有点蓝
--  发布时间:2021/3/4 9:10:00
--  
请上传实例测试
--  作者:zto001
--  发布时间:2021/3/4 17:10:00
--  
如果我能上实例早就上了。新建的项目不会有这样的问题,只有一个项目正常用很久之后,某一天突然用不了了。后面再怎么改代码都没用,哪怕所有代码删了也没用。新项目同样的代码不会有问题
--  作者:有点蓝
--  发布时间:2021/3/4 17:14:00
--  
导出这个窗口模板,以及用到的表格到新项目测试有没有问题