以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [问题] 窗口传值问题 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59845) |
-- 作者:xjt26605275 -- 发布时间:2014/11/12 10:02:00 -- [问题] 窗口传值问题 如题,如何传值给窗口? 有没有办法像vs一样,在窗口中定变量,然后传值? 问题: 现在做的项目中,窗口有3种状态,1.禁用,禁止用户使用,2.只读,允许用户使用部分查看功能,3.读写,拥有所有操作, 所有的窗口都设成主窗口,菜单是动态生成的,用户点击菜单的时候打开对应的窗口,在窗口的加载事件里处理权限问题 现在想到的解决方法是全局变量的Dictionary来存放,其他的方法或多或少都有一些问题. 怎么办? |
-- 作者:Bin -- 发布时间:2014/11/12 10:03:00 -- 定义一个全局变量来传递 |
-- 作者:xjt26605275 -- 发布时间:2014/11/12 10:04:00 -- 只有这种方法吗? |
-- 作者:xjt26605275 -- 发布时间:2014/11/12 10:05:00 -- 项目上百个窗口啊 |
-- 作者:Bin -- 发布时间:2014/11/12 10:08:00 -- 窗口未关闭,可以通过窗口的 baseform.tag 来传值 如果窗口关闭了,值就丢失了. 同样,你也可以直接获取窗口的任何控件的值 forms("X").controls("控件名").text
|
-- 作者:xjt26605275 -- 发布时间:2014/11/12 10:16:00 -- 设置主窗口,使用Forms("窗口").open 主线程继续执行, 在Forms("窗口").open之前赋值又不行,空指针异常 我想过使用BaseForm的Tag,但还是和上面一样,出现空指针异常
|
-- 作者:有点甜 -- 发布时间:2014/11/12 10:18:00 -- 这样写
Forms("窗口1").Panel.tag = 1 |
-- 作者:xjt26605275 -- 发布时间:2014/11/12 10:24:00 -- 要在窗口的加载事件发生之前tag就要有值了,因为要在里面做权限处理,这句话是在open之后才能写吧 |
-- 作者:有点甜 -- 发布时间:2014/11/12 10:26:00 -- 以下是引用xjt26605275在2014-11-12 10:24:00的发言:
要在窗口的加载事件发生之前tag就要有值了,因为要在里面做权限处理,这句话是在open之后才能写吧
用一个统一的变量,用于窗口间的参数传递,比如 tempVal
赋值和取值,就用它临时过渡一下。 |
-- 作者:xjt26605275 -- 发布时间:2014/11/12 10:27:00 -- 而且因为窗口不是ShowDialog,主线程会继续执行,如果是open后给tag赋值了不行,鬼知道窗口什么时候加载完成 |