以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 去除多选内容 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=137349) |
-- 作者:nxqtxwz -- 发布时间:2019/7/4 7:50:00 -- 去除多选内容 我采用在窗口中放多个复选框的方式进行多选输入,但有一个问题,输入完第一个后,输入第二个时,前面的多选框中的钩还在,如何实现输入下一个是把前一个选择的钩取消呢? |
-- 作者:有点蓝 -- 发布时间:2019/7/4 9:23:00 -- 1、改为单选框 2、窗口全局事件CheckedChanged事件,把复选框都放入一个panel里面 If e.Sender.checked = True For Each c As WinForm.Control In e.Form.Controls("panel1").Children If c.Name <> e.Sender.name AndAlso Typeof c Is WinForm.CheckBox Then Dim t As WinForm.CheckBox= c t.Checked = False End If Next End If |
-- 作者:nxqtxwz -- 发布时间:2019/7/4 10:09:00 -- 1、老师,按您的第2条做的话,我的多选变成单选了。 2、我的本意是保持多选,但在填完一条记录,填下一条时记录时,把上一条选的钩去掉重新选,现在是比如:输入第一条记录时选了3个人,等输入每二条记录时,选择的这三个人前面的钩仍然在,要取掉钩重新选。我的想法是在后面的记录时,自动把前面选的钩去掉。
|
-- 作者:有点蓝 -- 发布时间:2019/7/4 10:23:00 -- 1楼没有说清楚哦。 表currentchanged事件 if Forms("窗口1").opened then Forms("窗口1").Controls("checkbox1").Checked = False Forms("窗口1").Controls("checkbox2").Checked = Falseend if 或者参考2楼的方法遍历去掉勾选
|
-- 作者:nxqtxwz -- 发布时间:2019/7/4 11:20:00 -- 以下是引用有点蓝在2019/7/4 10:23:00的发言:
1楼没有说清楚哦。 表currentchanged事件
if Forms("窗口1").opened then
Forms("窗口1").Controls("checkbox1").Checked = False Forms("窗口1").Controls("checkbox2").Checked = False
end if
或者参考2楼的方法遍历去掉勾选 老师,代码请给改改,谢谢。
If Forms("出差人").opened Then |
-- 作者:有点蓝 -- 发布时间:2019/7/4 12:12:00 -- If Forms("出差人").opened Then For Each c As WinForm.Control In Forms("出差人").Controls("panel1").Children If Typeof c Is WinForm.CheckBox Then Dim t As WinForm.CheckBox= c t.Checked = False End If Next End If |
-- 作者:nxqtxwz -- 发布时间:2019/7/4 14:21:00 -- 老师您好,这段代码其它正常,但当一个人都不选时出错,请问能不能改一改呢?
Dim s As String |
-- 作者:有点蓝 -- 发布时间:2019/7/4 15:53:00 -- Dim s As String 改为 Dim s As String = ""
[此贴子已经被作者于2019/7/4 15:53:39编辑过]
|
-- 作者:nxqtxwz -- 发布时间:2019/7/4 16:52:00 -- 老师真厉害,谢谢! |