以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 老师这个问题怎么解决 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=185575) |
-- 作者:cd_tdh -- 发布时间:2023/3/2 17:28:00 -- 老师这个问题怎么解决 BeforeSelRangeChange事件代码: Dim wz As Integer = e.Table.Current.Index If e.Table.Current IsNot Nothing AndAlso e.Table.Current.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行修改了 MessageBox.Show("你的信息尚未保存,请先保存?", "提示") e.Cancel = True End If 如果删除行会报错
|
-- 作者:有点蓝 -- 发布时间:2023/3/2 17:34:00 -- 提示是systemidle事件出错 |
-- 作者:cd_tdh -- 发布时间:2023/3/3 8:49:00 -- 第一句代码多余,会导致报错,代码修改为这样,编辑已有数据,没有保存没问题,但是新增行时,也会提示,该怎么解决呢? Dim r As Row = e.Table.Current If r IsNot Nothing Then If r.DataRow.RowState <> DataRowState.Unchanged Then \'如果当前行修改了 MessageBox.Show("你的信息尚未保存,你确定要退出吗?", "提示",MessageBoxButtons.OK,MessageBoxIcon.Information) e.Cancel = True End If End If |
-- 作者:cd_tdh -- 发布时间:2023/3/3 8:55:00 -- 没有选择不同行前的事件,要是有选择不同行前的事件来判断就好了 |
-- 作者:有点蓝 -- 发布时间:2023/3/3 8:58:00 -- BeforeSelChange事件就是 |
-- 作者:cd_tdh -- 发布时间:2023/3/3 9:01:00 -- 这个是事件,我没修改,也会提示,而且能把鼠标焦点换到其他行,而且新增行后,没法定位到新增的行,代码如下 If e.OldRange.RowSel <> e.NewRange.RowSel Then\'如果选择的是不同的行 If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行 Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行 MessageBox.Show("没保存", "提示") e.Cancel=True End If End If [此贴子已经被作者于2023/3/3 9:06:34编辑过]
|
-- 作者:cd_tdh -- 发布时间:2023/3/3 9:29:00 -- 代码错了,应该先e.Cancel = True,后提示 If e.OldRange.RowSel <> e.NewRange.RowSel Then\'如果选择的是不同的行 If e.OldRange.RowSel >= 0 AndAlso e.OldRange.Rowsel < e.Table.Rows.Count Then \'而且原来选择的是一个有效的数据行 Dim r As Row = e.Table.Rows(e.OldRange.Rowsel) \'获得原来选择的行 If r.DataRow.RowState <> DataRowState.Unchanged Then e.Cancel = True msgbox("请先保存") End If End If End If |