以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  清空值后,报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79302)

--  作者:文道古月
--  发布时间:2015/12/28 17:22:00
--  清空值后,报错

老师好,为甚么清空db2的值之后,一直报错呢?怎么设条件都不行啊

 

Dim cmb As WinForm.ComboBox = e.Form.Controls("移动类型ComboBox2")
Dim cmb1 As WinForm.ComboBox = e.Form.Controls("接收单元ComboBox1")
Dim db1 As WinForm.DropDownBox = e.Sender \'定义引用正在发生变化的控件
Dim db2 As WinForm.DropDownBox = e.Form.Controls("移动单元DropBox1")
Dim st As String = db1.Text.SubString(0,4) \'取得过账区域项目的值的前四位
Dim str As String = "" \' 在移动的类型表中,查找移动单元包含前四位的行
Dim fiter As DataRow = DataTables("库存查询").Find("[移动单元] = \'"& st &"\'")
If db1.Value <> "" Or db2.value <> "" Then
    cmb.Enabled = True
    cmb1.Enabled = True       
    If fiter Is Nothing Then
        db2.Value = Nothing
        Tables("转移过账_筛选Table1").Filter = ""
        MessageBox.show("选定区域不存在,请重新输入!")
    Else Tables("转移过账_筛选Table1").Filter = ("[移动单元] = \'"& st &"\'")
    End If
    For Each dr As DataRow In DataTables("移动类型").Select("\'|\' + [移动单元] + \'|\' like \'%|" & st & "|%\'")
        str += dr("移动代码") & "-" & dr("移动文本") & "|" \'\'空白+代码,用-连接移动文本,后面的以此用|连接成一个字符串
    Next
    cmb.combolist = str.Trim("|") \'\'删除多余连接的|
    cmb.value = Nothing
    cmb1.value = Nothing
Else
    cmb.value = Nothing
    cmb1.value = Nothing
    cmb.Enabled = False
    cmb1.Enabled = False
End If


--  作者:大红袍
--  发布时间:2015/12/28 18:33:00
--  

1、报什么错?

 

2、做例子上来测试。


--  作者:文道古月
--  发布时间:2015/12/28 18:56:00
--  
.NET Framework 版本:2.0.50727.5483
Foxtable 版本:2015.11.11.1
错误所在事件:窗口,转移过账,移动单元DropBox1,ValueChanged
详细错误信息:
索引和长度必须引用该字符串内的位置。
参数名: length

--  作者:大红袍
--  发布时间:2015/12/28 19:18:00
--  

If db1.Text.Length >= 4 Then

   Dim st As String = db1.Text.SubString(0,4) \'取得过账区域项目的值的前四位

   \'其余代码

End If


--  作者:文道古月
--  发布时间:2015/12/28 19:42:00
--  

项目文件

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.table


--  作者:大红袍
--  发布时间:2015/12/28 19:44:00
--  
看4楼。5楼没有数据无法测试。
--  作者:文道古月
--  发布时间:2015/12/28 19:53:00
--  

哦哦,在看

 

请问,如果只是定义某个变量,执行的时候不引用,也会执行吗,


--  作者:大红袍
--  发布时间:2015/12/28 19:55:00
--  

只要代码没有触发,就不会执行。


--  作者:文道古月
--  发布时间:2015/12/28 20:21:00
--  

在窗口中,下面两个引用,,为什么有区分,在使用上有什么不一样吗?如果是同一个空间

 

Dim db1 As WinForm.DropDownBox = e.Sender \'定义引用正在发生变化的控件
Dim db1 As WinForm.DropDownBox = e.Form.Controls("移动单元DropBox1") ‘定义引用当前控件


--  作者:大红袍
--  发布时间:2015/12/28 20:22:00
--  

如果是写在DropBox1,没有区别。

 

在别的事件不能写 e.Sender