以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 求助,要怎么隐藏标签名称 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=148755) |
||||
-- 作者:hitzfeld -- 发布时间:2020/4/14 21:10:00 -- 求助,要怎么隐藏标签名称 我下面的代码要实现的功能是:取表中单号的值赋予标签,如果单号存在则显示标签,如果单号不存在则把标签隐藏(不显示),但是怎么都无法隐藏标签。求指点 For a As Integer = 0 To 5 If Tables("table1").rows(a)("单号") Is Nothing ’如果返回的单号为不存在,感觉错误就在这句?e.Form.Controls("a" & a +1).Visible = False \'隐藏标签 Else e.Form.Controls("a" & a +1).text = Tables("table1").rows(a)("单号") ’否则直接把标签名称赋值为单号显示。 End If Next |
||||
-- 作者:有点蓝 -- 发布时间:2020/4/14 21:17:00 -- If Tables("table1").rows(a).isnull("单号") ’如果返回的单号为不存在,感觉错误就在这句? e.Form.Controls("a" & a +1).Visible = False \'隐藏标签 |
||||
-- 作者:hitzfeld -- 发布时间:2020/4/14 23:07:00 -- 蓝老师您好,这样写的代码还是有问题? 原本没有用您的代码,没有单号(单号不存在)的时候,标签呈现的结果是A1,A2,A3,A4,A5,改成您的代码后,变成了“单号,单号,单号,单号,单号” 但是为不理解的地方就是,按道理代码没错啊?整个控件都隐藏了,没道理再显示“单号”两个字啊?百思不得其解? 我尝试使用在控件属性里面调整成“不可见”,结果倒是对的,就不显示了。就是代码控制不了。 |
||||
-- 作者:有点蓝 -- 发布时间:2020/4/14 23:16:00 -- 上传实例测试 |
||||
-- 作者:hitzfeld -- 发布时间:2020/4/14 23:52:00 --
蓝老师您好,项目上传了,其中A6对应的单号不存在,显示的就是“单号”两个字。
|
||||
-- 作者:有点蓝 -- 发布时间:2020/4/15 9:06:00 -- 表格只有5行数据,循环却有6个索引【For a As Integer = 0 To 5】,应该改为【For a As Integer = 0 To 4】 超出行数的索引取到的是标题行。所以就显示标题文字。 比较合理的用法应该是 For a As Integer = 0 To Tables("test").rows.Count - 1 If Tables("test").rows(a).Isnull("单号") e.Form.Controls("a" & a +1).Visible = False Else e.Form.Controls("a" & a +1).text = Tables("test").rows(a)("单号") End If Next [此贴子已经被作者于2020/4/15 9:06:33编辑过]
|
||||
-- 作者:hitzfeld -- 发布时间:2020/4/15 18:29:00 -- 蓝老师您好,您的代码仍然是有问题的。您的代码由于循环次数只有表的行数,导致后面的标签仍然不能隐藏,显示成“a3,a4,a5” 但是您的代码启发了我的思维,关键性的一句是“0 To Tables(“test").Rows.count -1”,后面我吧思路颠倒过来,我先把标签设置为不可见,然后代码改为 For a As Integer = 0 To Tables("test").Rows.count -1 e.Form.Controls("a" & a +1).Visible = True e.Form.Controls("a" & a +1).text = Tables("test").rows(a)("单号") next 成功的达到了我要的效果!谢谢您的指点! |