以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 请教老师,Sender不大了解怎么使用 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117755) |
-- 作者:wakai -- 发布时间:2018/4/18 17:35:00 -- 请教老师,Sender不大了解怎么使用 If Tables("包材申购窗体_包材申请表").Current IsNot Nothing Then Dim ctl As WinForm.Control = e.Sender Dim r As Row = Tables("包材申购窗体_包材申请表").Current If r("采购进度") = "申请中" Then ctl.ReadOnly = BooleanEnum.False \'允许编辑 Else ctl.ReadOnly = BooleanEnum.True \'禁止编辑 End If End If 以上代码执行后,将窗口所有控制都限制了,如要将名称为“商品ID”,“品牌”控件能正常编辑不受控制要如何写
|
-- 作者:有点甜 -- 发布时间:2018/4/18 18:12:00 -- If Tables("包材申购窗体_包材申请表").Current IsNot Nothing Then Dim ctl As WinForm.Control = e.Sender If ctl.name <> "商品ID" AndAlso ctl.name <> "品牌" Then Dim r As Row = Tables("包材申购窗体_包材申请表").Current If r("采购进度") = "申请中" Then ctl.ReadOnly = BooleanEnum.False \'允许编辑 Else ctl.ReadOnly = BooleanEnum.True \'禁止编辑 End If End If End If |
-- 作者:wakai -- 发布时间:2018/4/19 11:14:00 -- 谢谢甜老师,如果控件名比较多怎么简化下代码,如 If ctl.name <> "查询订单明细ID" AndAlso ctl.name <> "品牌" AndAlso ctl.name <> "查询商品ID" AndAlso ctl.name <> "查询名称" AndAlso ctl.name <> "查询进度" Then
|
-- 作者:有点甜 -- 发布时间:2018/4/19 11:22:00 -- Dim cs() As String = {"id", "品牌", "查询商品ID"} If array.IndexOf(cs, ctl.name) < 0 Then |
-- 作者:huangfanzi -- 发布时间:2018/4/19 12:32:00 -- 这个代码好,我项目中也是好多像3楼哪样的代码,有时,要判断的字段多了,代码好长的,刚试了下甜老师的代码,确实简洁。 |