Foxtable(狐表)用户栏目专家坐堂 → 并列窗口关闭


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

主题:并列窗口关闭

美女呀,离线,留言给我吧!
qinlao666
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:443 积分:3784 威望:0 精华:0 注册:2015/3/3 10:06:00
并列窗口关闭  发帖心情 Post By:2018/12/10 14:11:00 [只看该作者]

If DataTables("合同主表").HasChanges Or DataTables("合同明细").HasChanges  Then
    If MessageBox.Show("合同单已经被修改,是否保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
        DataTables.Save()
        e.form.close()
    Else
        If MessageBox.Show("您确定不保存!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
            DataTables("合同主表").RejectChanges()
            DataTables("合同明细").RejectChanges()
            e.form.close()
        End If
    End If
Else
    Forms("合同").close
End If

“合同“窗口是一个并列窗口,我在窗口的beforeclose事件中加入上面的代码,我点击并列窗口的x按钮,结果就把整个项目都给我关闭了,麻烦老师看一下是什么原因

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


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

beforeclose事件不能写本窗口的close代码,不然会死循环的。

 

删除这个代码 Forms("合同").close

 


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


加好友 发短信
等级:一尾狐 帖子:443 积分:3784 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2018/12/11 9:58:00 [只看该作者]

那老师这个问题如何处理呢?
另外请教老师,我想写个全局代码,每关闭一个窗口,都实现上述代码的功能,请老师赐教代码,谢谢!

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


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

绑定 TabPageClosing 事件,然后处理

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=128494&skin=0

 


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


加好友 发短信
等级:一尾狐 帖子:443 积分:3784 威望:0 精华:0 注册:2015/3/3 10:06:00
  发帖心情 Post By:2018/12/11 14:38:00 [只看该作者]

Public Sub _TabPageClosing(sender As Object, e As C1.Win.C1Command.TabPageCancelEventArgs)
'页面关闭按钮点击事件
If e.TabPage.Text = "背景窗口" Then
    MessageBox.Show("窗口不能关闭!")
    e.Cancel = True
Else
    For Each t As DataTable In DataTables
        If t .HasChanges  Then
            If MessageBox.Show("此表单已经被修改,是否保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                t.Save()
                Forms(e.TabPage.Text).Close
                e.cancel = True
            Else
                If MessageBox.Show("您确定不保存!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                    t.RejectChanges()
                    Forms(e.TabPage.Text).Close
                    e.cancel = True
                End If
            End If
            e.cancel = True
        End If
    Next
    
End If
End Sub

不做循环判断,只判断当前窗口的当前表,请教老师如何修改

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


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

Public Sub _TabPageClosing(sender As Object, e As C1.Win.C1Command.TabPageCancelEventArgs)
'页面关闭按钮点击事件
If e.TabPage.Text = "背景窗口" Then
    MessageBox.Show("窗口不能关闭!")
    e.Cancel = True
Else
   
    For Each t As Table In Tables
        If t.Form IsNot Nothing AndAlso t.Form.name = e.tabpage.text AndAlso t.DataTable.HasChanges  Then
            If MessageBox.Show("此表单已经被修改,是否保存?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                t.Save()
                Forms(e.TabPage.Text).Close
                e.cancel = True
            Else
                If MessageBox.Show("您确定不保存!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) = DialogResult.Yes Then
                    t.DataTable.RejectChanges()
                    Forms(e.TabPage.Text).Close
                    e.cancel = True
                End If
            End If
            e.cancel = True
        End If
    Next
   
End If
End Sub

 回到顶部