Foxtable(狐表)用户栏目专家坐堂 → 点击窗口右上角的"X"时,怎样按条件设定是否关闭?


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

主题:点击窗口右上角的"X"时,怎样按条件设定是否关闭?

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


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
点击窗口右上角的"X"时,怎样按条件设定是否关闭?  发帖心情 Post By:2009/8/28 9:00:00 [只看该作者]

     如题,我想实现的目标是,点击窗口右上角的"X"时,加一个条件判断,若条件符合,关闭窗口;若条件不符合,则不关闭窗口,并出现一个提示框.
     例如,点窗口1 右上角"X"时,若vars("a")=1,则关闭窗口;否则,不关闭窗口,弹出提示框 "由于条件不符合,所以不允许关闭窗口1!".
[此贴子已经被作者于2009-8-28 9:01:33编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:858 积分:6071 威望:0 精华:19 注册:2008/9/1 9:13:00
  发帖心情 Post By:2009/8/28 9:28:00 [只看该作者]

BeforeClose

在关闭窗口前执行。
只有窗口类型为模式或独立窗口时,本事件才有效。

e参数属性:

Form:  表示要关闭的窗口
Cancel:逻辑型,设为True,将禁止关闭窗口,只有模式窗口才可以禁止关闭。

如果任何时候Cancel参数都返回True的话,那么窗口将永远不能关闭,直到强行中止进程,所以在代码中使用Cancel参数的时候,一定要慎重。

示例

请在窗口中加入两个DateTimePicker(日期输入框),分别命名为StartDate和EndDate。
然后将BeforeCloses事件代码设为:

Dim sd As WinForm.DateTimePicker
Dim
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
    MessageBox.Show(
"请输入起始日期和终止日期!","提示", MessageBoxButtons.OK ,MessageBoxIcon.Information)
    e.Cancel =
True
End
If


 回到顶部
美女呀,离线,留言给我吧!
yangming
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:4109 积分:23338 威望:0 精华:21 注册:2008/9/1 20:07:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:六尾狐 帖子:1412 积分:8937 威望:0 精华:0 注册:2008/9/1 8:57:00
  发帖心情 Post By:2009/8/28 10:12:00 [只看该作者]

   谢谢两位,可以了.

   另外,发现不但模式窗口可以禁止关闭,独立窗口同样也可以.

   挺好,其实我需要的就是独立窗口根据条件禁止关闭.

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


加好友 发短信
等级:小狐 帖子:363 积分:2998 威望:0 精华:0 注册:2008/11/11 13:42:00
  发帖心情 Post By:2009/8/28 11:28:00 [只看该作者]

能否取消这个关闭功能呢?


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


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

以下是引用woodiy在2009-8-28 11:28:00的发言:

能否取消这个关闭功能呢?

窗口设计的时候,将属性“允许关闭”设为False


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


加好友 发短信
等级:小狐 帖子:363 积分:2998 威望:0 精华:0 注册:2008/11/11 13:42:00
  发帖心情 Post By:2009/8/28 11:58:00 [只看该作者]

功能是取消了,但是那个“X”还在啊!


 回到顶部