以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 点击窗口右上角的"X"时,怎样按条件设定是否关闭? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=4100) |
-- 作者:cpayinyuan -- 发布时间:2009/8/28 9:00:00 -- 点击窗口右上角的"X"时,怎样按条件设定是否关闭? 如题,我想实现的目标是,点击窗口右上角的"X"时,加一个条件判断,若条件符合,关闭窗口;若条件不符合,则不关闭窗口,并出现一个提示框. 例如,点窗口1 右上角"X"时,若vars("a")=1,则关闭窗口;否则,不关闭窗口,弹出提示框 "由于条件不符合,所以不允许关闭窗口1!". [此贴子已经被作者于2009-8-28 9:01:33编辑过]
|
-- 作者:lxl -- 发布时间:2009/8/28 9:28:00 -- BeforeClose 在关闭窗口前执行。只有窗口类型为模式或独立窗口时,本事件才有效。 e参数属性: Form: 表示要关闭的窗口 如果任何时候Cancel参数都返回True的话,那么窗口将永远不能关闭,直到强行中止进程,所以在代码中使用Cancel参数的时候,一定要慎重。 示例 请在窗口中加入两个DateTimePicker(日期输入框),分别命名为StartDate和EndDate。 Dim sd As WinForm.DateTimePickerDim ed As WinForm.DateTimePicker sd = e.Form.Controls("StartDate") ed = e.Form.Controls("EndDate") If sd.Value Is Nothing OrElse ed.Value Is Nothing Then MessageBox.Show("请输入起始日期和终止日期!","提示", MessageBoxButtons.OK ,MessageBoxIcon.Information) e.Cancel = True End If 假定两个日期输入框分别绑定到两个全局变量:StartDate和EndDate,那么上述代码可以简化为: If Vars("StartDate") Is Nothing OrElse Vars("EndDate") Is Nothing Then |
-- 作者:yangming -- 发布时间:2009/8/28 9:31:00 -- 试试这个代码:放在窗口的BeforeClose事件中 在关闭窗口前执行。 If e.Form.Controls("TextBox1").Value= "aa" MessageBox.Show("可以关闭!","提示") e.Cancel = False Else MessageBox.Show("不能关闭!","提示") e.Cancel = True End If |
-- 作者:cpayinyuan -- 发布时间:2009/8/28 10:12:00 -- 谢谢两位,可以了. 另外,发现不但模式窗口可以禁止关闭,独立窗口同样也可以. 挺好,其实我需要的就是独立窗口根据条件禁止关闭. |
-- 作者:woodiy -- 发布时间:2009/8/28 11:28:00 -- 能否取消这个关闭功能呢? |
-- 作者:狐狸爸爸 -- 发布时间:2009/8/28 11:28:00 -- 以下是引用woodiy在2009-8-28 11:28:00的发言:
能否取消这个关闭功能呢? 窗口设计的时候,将属性“允许关闭”设为False |
-- 作者:woodiy -- 发布时间:2009/8/28 11:58:00 -- 功能是取消了,但是那个“X”还在啊! |