以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]表在进行某行编辑时如何保证在编辑状态下不准移出该行?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=175479)

--  作者:新福星
--  发布时间:2022/3/6 19:56:00
--  [求助]表在进行某行编辑时如何保证在编辑状态下不准移出该行?
如何实现一个表在进入某一行编辑时就不允许移出该行,直至保存完成录入工作后解除?


--  作者:有点蓝
--  发布时间:2022/3/6 20:51:00
--  
参考:http://www.foxtable.com/webhelp/topics/0644.htm
--  作者:新福星
--  发布时间:2022/3/7 6:12:00
--  
希望真正修改某行后或者新增行后,不允许再选择它行。如下代码。
修改的可以控制了。
新增行出现问题。会先出来三次下面(MessageBox.Show)的提示,然后才不能选择它行。
问题是如何在新增行时,不要出现三次提示?



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) \'获得原来选择的行
        Dim dr As DataRow = e.Table.Current.DataRow
        If dr.RowState=DataRowState.Modified  Or dr.RowState=DataRowState.Added Then
            \'  If dr.RowState=DataRowState.Modified  Then
            MessageBox.Show("正在编辑数据不允许换行.保存数据或撤销修改后可以正常换行!")
            e.Cancel=True
        End If
    End If
End If


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20220307060606.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2022/3/7 8:31:00
--  
不要一条路走死呀。既然有新增按钮,就在按钮里判断,符合条件的才调用addnew咯。

不需要到表事件处理,如果要到表事件处理也要到和新增相关的表事件处理呀,比如BeforeAddDataRow

--  作者:新福星
--  发布时间:2022/3/7 17:42:00
--  
我希望的是 ,新增按钮按下做了 .AddNew 之后,不允许再移动到其他行,鼠标不管怎么敲,当前行一直是新增的那行。



--  作者:有点蓝
--  发布时间:2022/3/7 20:11:00
--  
我测试不会弹出3次,只有一次,请上传实例说明