以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- Position定位不对 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=146042) |
-- 作者:goldenfont -- 发布时间:2020/2/14 19:50:00 -- Position定位不对 老师,出现个怪问题,我的窗口表Table1,同时在窗口中使用了RecordGrid,然后在afterSel中判断旧的行是不是有未填字段,然后进行提示是否保存,但是我选择否以后,我希望是Table回到以前的行,但是为什么回不去啊?但是RecordGrid是回去的,这是什么问题? If e.OldRange.RowSel <> e.NewRange.RowSel \'如果选择的是不同的行 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 \'提示是否需要保存原来的数据,然后在切换过去 If MessageBox.Show("当前数据有更新,需要保存吗?","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information)=DialogResult.Cancel Then \'切换回到原来的那行 Dim idx As Integer = e.Table.FindRow(r.DataRow) e.Table.Position = idx Return End If r.Save End If End If End If |
-- 作者:goldenfont -- 发布时间:2020/2/14 19:54:00 -- 就是这样的问题,我切换选中行,跳出提示,然后我选否,RecordGird回到123这行了,但是Table的高亮显示,总是跳到新行去 |
-- 作者:有点蓝 -- 发布时间:2020/2/14 20:38:00 -- 这种用法应该放到BeforeSelChange事件:http://www.foxtable.com/webhelp/topics/0644.htm 取消换行使用e.cancel即可
|