Foxtable(狐表)用户栏目专家坐堂 → 有没有命令让窗口打开后所有控件都是只读的,不想一个个设置。


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

主题:有没有命令让窗口打开后所有控件都是只读的,不想一个个设置。

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


加好友 发短信
等级:幼狐 帖子:70 积分:820 威望:0 精华:0 注册:2013/9/2 17:03:00
有没有命令让窗口打开后所有控件都是只读的,不想一个个设置。  发帖心情 Post By:2014/10/13 11:14:00 [只看该作者]

有没有命令让窗口打开后所有控件都是只读的,不想一个个设置。

 

如题。

命令 FORMS("XXXX").open 后打开的窗口里面的内容都是只读的。

 


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/10/13 11:16:00 [只看该作者]

参考帮助http://www.foxtable.com/help/topics/1849.htm
遍历控件设置EnableD属性设置为False

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


加好友 发短信
等级:幼狐 帖子:70 积分:820 威望:0 精华:0 注册:2013/9/2 17:03:00
  发帖心情 Post By:2014/10/13 11:17:00 [只看该作者]

这还是要打开窗口后在里面的窗口设定啊。

而且我新增什么内容时还是要能编辑的

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/10/13 11:24:00 [只看该作者]

写在AlterLoad事件就可以了啊

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


加好友 发短信
等级:幼狐 帖子:70 积分:820 威望:0 精华:0 注册:2013/9/2 17:03:00
  发帖心情 Post By:2014/10/13 11:31:00 [只看该作者]

以下是引用Bin在2014-10-13 11:24:00的发言:
写在AlterLoad事件就可以了啊

知道,但有个问题就是,如果要编辑还是设回来,还要进行一堆判断,麻烦。

 

最简单的办法是复制一个同样的窗口,直接在Afterload里设只读,不同的场景打开不同窗口。

 

这样就有个问题是窗口太多,而且原来窗口改动这边还要重新生成。

 

能不能在窗口管理里增加个复制功能,直接复制原来窗口生成一个新窗口,这应该挺实用的。

 

不要说先导出文件,再导入,还是麻烦。


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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/10/13 11:42:00 [只看该作者]

没有看明白你的意思.


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


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

 没有必要做两个窗口,设置成只读和取消只读,就是几句代码的事。

 

 你可以把代码写在afterload事件,也可以写在打开窗口之后。


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


加好友 发短信
等级:幼狐 帖子:70 积分:820 威望:0 精华:0 注册:2013/9/2 17:03:00
  发帖心情 Post By:2014/10/13 16:50:00 [只看该作者]

也是,但是不想让一些人能编辑,只让他看而已。

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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/10/13 16:55:00 [只看该作者]

判断用户名就行啊:

 

Select case  User.name

   case “张三","李四","王五"

      设置控件的ReadOnly或Enabeld属性

end Select


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


加好友 发短信
等级:管理员 帖子:47448 积分:251060 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/10/13 17:19:00 [只看该作者]

如果新增行能编辑,其他行部分人不能编辑 ,设置窗口的全局Enter事件即可:

 

 

Dim bn As BooleanEnum
If Tables("表A").Current.DataRow.RowState = DataRowState.Added Then '新增行全部能编辑
    bn = BooleanEnum.False
Else
    Select Case  User.name
        Case "张三","李四","王五" '这些人不能编辑
            bn =   BooleanEnum.True
        Case Else
            bn =   BooleanEnum.False
    End Select
End If
e.sender.ReadOnly = bn

 

提问最好一次将问题讲清楚,不要一会增加一点要求,你1楼、3楼、8楼在不断第变化问题,本来只需一次回帖,5分钟搞定的问题,会需要几个小时。

[此贴子已经被作者于2014-10-13 17:24:39编辑过]

 回到顶部