以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]代码执行问题(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93491) |
-- 作者:pcxjxjhkw -- 发布时间:2016/11/29 21:53:00 -- [求助]代码执行问题(已解决) 设计了一等待窗口。令了一全局变量_FromIsOpened。两个函数: 打开等待窗口函数: If _FromIsOpened = False Then \'\'\'如果等待窗口已关闭
关闭等待窗口函数: If _FromIsOpened = True Then \'\'如果等待窗口已打开
有两按钮, 按钮一代码: Functions.Execute("打开等待窗口") 。。。。。查询加载数据的代码 Functions.Execute("关闭等待窗口")
按钮二代码: Functions.Execute("打开等待窗口") 按钮一.PerformClick Functions.Execute("关闭等待窗口")
单击按钮二,出现的问题:等待响应窗口显示2次,要实现只显示1次。
求助大家,谢谢
[此贴子已经被作者于2016/11/30 18:56:22编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/11/29 22:11:00 -- 按钮二代码: 按钮一.PerformClick |
-- 作者:pcxjxjhkw -- 发布时间:2016/11/29 22:17:00 -- 我在描述问题时,少说了一个按钮。 实际为3个按钮,
按钮一代码: Functions.Execute("打开等待窗口") 。。。。。查询加载数据的代码 Functions.Execute("关闭等待窗口")
按钮二代码: Functions.Execute("打开等待窗口") 。。。。。查询加载数据的代码 Functions.Execute("关闭等待窗口")
按钮三代码: Functions.Execute("打开等待窗口") 按钮一.PerformClick 按钮二.PerformClick Functions.Execute("关闭等待窗口") 单击按钮三,出现的问题:等待响应窗口显示3次,要实现只显示1次。 |
-- 作者:有点蓝 -- 发布时间:2016/11/29 22:27:00 -- 1、把按钮代码搬到函数 按钮一代码: Functions.Execute("打开等待窗口") Functions.Execute("函数1") Functions.Execute("关闭等待窗口")
按钮二代码: Functions.Execute("打开等待窗口") Functions.Execute("函数2") Functions.Execute("关闭等待窗口")
按钮三代码: Functions.Execute("打开等待窗口") Functions.Execute("函数1") Functions.Execute("函数2") Functions.Execute("关闭等待窗口") 2、重复调用代码 按钮三代码: Functions.Execute("打开等待窗口") 按钮1查询加载数据的代码 按钮2查询加载数据的代码 Functions.Execute("关闭等待窗口") |
-- 作者:pcxjxjhkw -- 发布时间:2016/11/29 22:30:00 -- 等待窗口用到的地方很多,不可能将所按钮的代码都写到函数。 按我的理解,应该能实现的。 理由:_FromIsOpened初始为False,启动一等待窗口,值为true。当为True时,则不为执行打开窗口函数,直到为False时才会执行。
但测试时,就是无法实现。 [此贴子已经被作者于2016/11/29 23:02:37编辑过]
|
-- 作者:pcxjxjhkw -- 发布时间:2016/11/30 11:44:00 -- 各位老师,这个问题还没得到解决哟 |
-- 作者:有点蓝 -- 发布时间:2016/11/30 11:58:00 -- 看4楼,没有其它办法 |
-- 作者:有点色 -- 发布时间:2016/11/30 12:26:00 -- 只管打开,关闭窗口,用一个计时器来关闭,判断变量的值即可。 |
-- 作者:pcxjxjhkw -- 发布时间:2016/11/30 12:35:00 -- 5楼的分析有什么问题吗? |
-- 作者:逛逛 -- 发布时间:2016/11/30 12:43:00 -- 试试重写一个函数吧 例如: 函数 ss Dim a As List(of WinForm.Button) = args(0) If Not Forms("等待响应").Opened Then Forms("等待响应").Open For Each b As WinForm.Button In a b.PerformClick If b.Text > "" Then Forms("等待响应").Controls("提示信息").text = b.Text End If Next Forms("等待响应").Close End If 执行 Dim bs As New List(of WinForm.Button) bs.Add(CType(Forms("??").Controls("Button1"),WinForm.Button)) bs.Add(CType(Forms("??").Controls("Button2"),WinForm.Button)) Functions.Execute("ss",bs) |