Foxtable(狐表)用户栏目专家坐堂 → [求助]窗口中,全局代码enter,控制不住文件和图片呢?


  共有1656人关注过本帖树形打印复制链接

主题:[求助]窗口中,全局代码enter,控制不住文件和图片呢?

帅哥哟,离线,有人找我吗?
yancheng
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
[求助]窗口中,全局代码enter,控制不住文件和图片呢?  发帖心情 Post By:2016/12/17 18:23:00 [只看该作者]

窗口中,全局代码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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/18 9:41:00 [只看该作者]

 设置 Enabled 属性试试。

 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By: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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/18 11:16:00 [只看该作者]

1、加入msgbox,弹出和执行代码了吗?

 

2、你还不如直接在afterLoad事件直接控制。


 回到顶部
帅哥哟,离线,有人找我吗?
yancheng
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:843 积分:5982 威望:0 精华:0 注册:2013/6/29 9:36:00
  发帖心情 Post By: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

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/18 11:44:00 [只看该作者]

 说明,不会触发enter事件。

 

 建议写到AfterLoad事件,或者其它事件去。


 回到顶部