以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何让False起作用  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=2782)

--  作者:shixia
--  发布时间:2009/5/13 21:35:00
--  如何让False起作用

PrepareEdit

准备编辑单元格的时候执行。

e参数属性:

Table:       准备编辑的表
Row:         准备编辑的行
Col:         准备编辑的列
IsFocusCell: 逻辑型,是否是焦点单元格   
Cancel:      逻辑型,默认为False,设为True取消编辑。


在写代码过程中,有时必须让False起到允许编辑的作用,如果这样可以简化很多代码,有时我认为如果不这样的话,自己想实现的功能无法达到。在PrepareEdit有这种情况,在其它事件中也有这种情况,不知狐爸能不能解决。

--  作者:狐狸爸爸
--  发布时间:2009/5/14 8:23:00
--  
呵呵,我有点糊涂了。
Cancel默认等于False,也就是允许编辑啊。
--  作者:shixia
--  发布时间:2009/5/14 8:32:00
--  
如果先true取消编辑,但在某一特定条件,或被授权人来编辑时,即有较复杂的逻辑判断过程中又允许编辑false,那么仅靠默认False不能实现功能,现在写个e.Cancel=false没有作用,如果写一代码来实现e.Cancel=false又非常复杂,太复杂了代码之间有可能发生错误,因此我想能不能当写e.Cancel=false时由默认允许编辑变为强制允许编辑,当不写e.Cancel=false时就是默认编辑。
--  作者:狐狸爸爸
--  发布时间:2009/5/14 8:36:00
--  
1、默认是允许编辑的,所以我们不需要去处理允许编辑的条件,秩序判断那些条件是不允许编辑的,在符合不允许编辑的条件时候,e.Cancel = True即可:

If (不应允编辑的条件) = True
  e.Cancel = True
End If

2、也许你觉得表达允许编辑的条件简单点,表述不允许编辑的条件复杂的,那么可以:

if  (允许编辑的条件) = False
  e.Cancel = True
End If