Foxtable(狐表)用户栏目专家坐堂 → 请教老师,Sender不大了解怎么使用


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

主题:请教老师,Sender不大了解怎么使用

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


加好友 发短信
等级:小狐 帖子:364 积分:3488 威望:0 精华:0 注册:2016/5/25 21:31:00
请教老师,Sender不大了解怎么使用  发帖心情 Post By:2018/4/18 17:35:00 [只看该作者]

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”,“品牌”控件能正常编辑不受控制要如何写

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:364 积分:3488 威望:0 精华:0 注册:2016/5/25 21:31:00
  发帖心情 Post By:2018/4/19 11:14:00 [只看该作者]

谢谢甜老师,如果控件名比较多怎么简化下代码,如
If ctl.name <> "查询订单明细ID" AndAlso ctl.name <> "品牌" AndAlso ctl.name <> "查询商品ID" AndAlso ctl.name <> "查询名称" AndAlso ctl.name <> "查询进度" Then

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/4/19 11:22:00 [只看该作者]

Dim cs() As String = {"id", "品牌", "查询商品ID"}

If array.IndexOf(cs, ctl.name) < 0 Then


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


加好友 发短信
等级:五尾狐 帖子:1104 积分:8956 威望:0 精华:0 注册:2014/10/25 11:24:00
  发帖心情 Post By:2018/4/19 12:32:00 [只看该作者]

这个代码好,我项目中也是好多像3楼哪样的代码,有时,要判断的字段多了,代码好长的,刚试了下甜老师的代码,确实简洁。

 回到顶部