以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]窗口中,全局代码enter,控制不住文件和图片呢? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=94180) |
-- 作者:yancheng -- 发布时间:2016/12/17 18:23:00 -- [求助]窗口中,全局代码enter,控制不住文件和图片呢? 窗口中,全局代码enter,控制不住文件和图片呢?(有的模式窗口能控制住 ,有的不起作用?) 其它 列都行。 Dim ctl As WinForm.Control = e.Sender Dim dr As Row = Tables("材料").Current Selec t Case ctl.BindingField Case "材料.定额编码","材料.材料名称","材料.规格","材料.供应商","材料.分类","材料.子分类","材料.单位","材料.品牌","材料.型号","材料.库存数量","材料.图片","材料.材料文件", _ "材料.初始库存","材料.成本价","材料.零售价","材料.预算价","材料.最大库存","材料.最小库存","材料.备注","材料.网址","材料.网址2","材料.网址3", _ "材料.选型图片","材料.选型规格","材料.选型品牌","材料.选型型号","材料.颜色","材料.产品尺寸","材料.使用区域","材料.选型单价","材料.选型网址","材料.官网" If dr.IsNull("审核") =False Then ctl.ReadOnly = BooleanEnum.True Else If _UserGroup = "录入员" Or _UserGroup = "会计" Then If dr("操作员") <> _UserName Then ctl.ReadOnly = BooleanEnum.True Else ctl.ReadOnly = BooleanEnum.False End If End If End If End Sel ect 材料.图片","材料.材料文件 这两个 文件和图片。PictureViewer1 FileManager1类型的。 审核 了,还是能删除。
[此贴子已经被作者于2016/12/17 18:23:46编辑过]
|
-- 作者:有点色 -- 发布时间:2016/12/18 9:41:00 -- 设置 Enabled 属性试试。 |
-- 作者:yancheng -- 发布时间:2016/12/18 11:03:00 -- Dim ctl As WinForm.Control = e.Sender Sel ect Case ctl.BindingField Case "材料.图片","材料.材料文件" \'If dr.IsNull("审核") =False Then \'ctl.Enabled = False \'Else \'If _UserGroup = "录入员" Or _UserGroup = "会计" Then \'If dr("操作员") <> _UserName Then \'ctl.Enabled = True \'Else ctl.Enabled = False \'End If \'End If \'End If End Select 这样,直接控制,都控制不住。
[此贴子已经被作者于2016/12/18 11:03:56编辑过]
|
-- 作者:有点色 -- 发布时间:2016/12/18 11:16:00 -- 1、加入msgbox,弹出和执行代码了吗?
2、你还不如直接在afterLoad事件直接控制。 |
-- 作者:yancheng -- 发布时间:2016/12/18 11:32:00 -- Dim ctl As WinForm.Control = e.Sender Dim dr As Row = Tables("材料").Current Select Case ctl.BindingField Case "材料.定额编码","材料.材料名称","材料.规格","材料.供应商","材料.分类","材料.子分类","材料.单位","材料.品牌","材料.型号","材料.库存数量", _ "材料.初始库存","材料.成本价","材料.零售价","材料.预算价","材料.最大库存","材料.最小库存","材料.备注","材料.网址","材料.网址2","材料.网址3", _ "材料.选型图片","材料.选型规格","材料.选型品牌","材料.选型型号","材料.颜色","材料.产品尺寸","材料.使用区域","材料.选型单价","材料.选型网址","材料.官网","材料.类别" msgbox(0) If dr.IsNull("审核") =False Then ctl.ReadOnly = BooleanEnum.True Else If _UserGroup = "录入员" Or _UserGroup = "会计" Then If dr("操作员") <> _UserName Then ctl.ReadOnly = BooleanEnum.True Else ctl.ReadOnly = BooleanEnum.False End If End If End If Case "材料.图片","材料.材料文件" msgbox(1) \'If dr.IsNull("审核") =False Then \'ctl.Enabled = False \'Else \'If _UserGroup = "录入员" Or _UserGroup = "会计" Then \'If dr("操作员") <> _UserName Then \'ctl.Enabled = True \'Else ctl.Enabled = False \'End If \'End If \'End If End Select msgbox (0) 执行,msgbox(1)不执行,奇怪,什么道理?
|
-- 作者:yancheng -- 发布时间:2016/12/18 11:44:00 -- 写到aterload里面,可以。 只能用:ctl.ReadOnly ,不能用enabled Dim r As Row = Tables("材料").Current For Each ctl As WinForm.Control In e.Form.Controls If ctl.ReadOnly = BooleanEnum.True Then ctl.BackColor=Color.LightGray End If If ctl.BindingField = "材料.图片" OrElse ctl.BindingField = "材料.材料文件" Then If r.IsNull("审核") =False Then ctl.ReadOnly =BooleanEnum.True Else If _UserGroup = "录入员" Or _UserGroup = "会计" Then If r("操作员") <> _UserName Then ctl.ReadOnly =BooleanEnum.True Else ctl.ReadOnly =BooleanEnum.False End If End If End If End If Next |
-- 作者:有点色 -- 发布时间:2016/12/18 11:44:00 -- 说明,不会触发enter事件。
建议写到AfterLoad事件,或者其它事件去。 |