以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  编辑单元格过程中执行e.cancel  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=150823)

--  作者:tld
--  发布时间:2020/6/8 17:18:00
--  编辑单元格过程中执行e.cancel
老师好。DataColChanging事件是已经发生变化后执行。哪个事件,可以支持如下情形:改变单元格的任
一个字符都进行判断,如果满足就执行 e.Cancel

--  作者:有点蓝
--  发布时间:2020/6/8 17:25:00
--  
KeyPressEdit在编辑框每输入一个字符时执行

--  作者:tld
--  发布时间:2020/6/9 0:09:00
--  
老师,这个事件的text 是 编辑字符之前的值.我希望对编辑一个字符之后,对改变了的值进行比较后判断是否执行e.cancel.
[此贴子已经被作者于2020/6/9 0:14:36编辑过]

--  作者:有点蓝
--  发布时间:2020/6/9 8:33:00
--  

KeyPressEdit

在编辑框每输入一个字符时执行。

e参数属性:

Table:            所编辑的表
Row:              所编辑的行
Col:              所编辑的列
KeyChar:          字符型,表示所输入的字符。
Cancel:          逻辑型,如果设为True,取消本次字符输入。
Text:             返回或设置编辑框中的内容。
SelectedText:     返回或设置编辑框中选定的内容。 
SelectionStart:   返回或设置编辑框中选定内容的起始位置(光标位置)。
SelectionLength:  返回或设置编辑框中选定内容的长度。


--  作者:tld
--  发布时间:2020/6/9 9:06:00
--  
老师,keychar是一个字符。我的意思是:单元格内的内容是  str,进入单元格后修改,每编辑一个字符后,都返回单元格的内容,设为 str1  。对str1 进行条件比较。如果符合,返回编辑之前的值,如果不符合,返回str1

我用ChangeEdit 试试。不用 e.cancel了

[此贴子已经被作者于2020/6/9 9:09:48编辑过]

--  作者:有点蓝
--  发布时间:2020/6/9 9:14:00
--  
dim str1 as string = e.Text.SubString(0,e.SelectionStart) & e.KeyChar & e.Text.SubString(e.SelectionStart + e.SelectionLength)
Output.Show(str1)
[此贴子已经被作者于2020/6/9 9:14:06编辑过]

--  作者:tld
--  发布时间:2020/6/9 10:30:00
--  
谢谢蓝版主!