某
独立窗口有一关联表控件,另有保存和退出按钮....
保存按钮代码为:DataTables("某表").Save()
退出按钮代码为:e.form.Close()
如何设计
当前关联表修改后未点击保存按钮时,点击退出按钮出现图二所示提示?
此主题相关图片如下:001.jpg
此主题相关图片如下:002.jpg
[此贴子已经被作者于2009-3-29 14:29:04编辑过]
不好意思,楼上代码漏了最关键的,未对Meb变量赋值。
If DataTables("某表").HasChanges Then
Dim Meb As DialogResult
Meb = MessageBox.Show("某表已经被修改,是否保存?", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question)
if Meb = DialogResult.Yes Then
DataTables("某表").Save()
e.form.Close()
Elseif Meb = DialogResult.No Then
e.form.Close()
End If
Else
e.form.Close()
End If
[此贴子已经被作者于2009-3-29 13:39:19编辑过]
......关键字HasChanges
问题好象还在啊.点击否,窗口关闭,再打开,刚才新增输入的项目依然保存了.....
窗口AfterLoad和BeforeClose事件都有同样代码DataTables("某表").Load()
某表为SQL外部表.
[此贴子已经被作者于2009-3-29 14:38:56编辑过]
这个应该比较难办吧。
假如你不是关闭窗口,而是判断是否进行过修改,然后关闭项目就容易办。
无论根据判断是否关闭窗口,此时的修改过的值都真真切切的存在于表中,只要你以后执行保存,修改过的数据都会进行保存。
从你的个表述看,最好的办法是当选择否后,判断CanUndo是否有撤消的信息,直至全部撤消。
[此贴子已经被作者于2009-3-29 15:31:34编辑过]
全部取消重做这个不太好办.如何判断只取消当前表?假如还有其他表未保存呢?
看来得找老爹了..
借你的贴,我倒希望老六增加清除编辑标记的函数,这样更能灵活处理一些特殊的要求。
Tables("表名").CanUndoCanUndo能返回一个集合吗?如果能够返回问题就很好解决,否则只能挠头了。