找回密码
 立即注册

QQ登录

只需一步,快速开始

info

初级会员

16

主题

67

帖子

454

积分

初级会员

积分
454

[已处理] 数据验证的疑问

info
初级会员   /  发表于:2020-9-23 10:03  /   查看:4847  /  回复:14
本帖最后由 info 于 2020-9-24 14:09 编辑

项目需要根据条件修改单元格输入的数值,
请问如何使用代码增加或修改验证的内容,设置如下图显示


image.png413788756.png


image.png32598875.png

14 个回复

正序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-24 14:42:16
15#
不客气
回复 使用道具 举报
info
初级会员   /  发表于:2020-9-24 14:09:23
14#
问题解决了,谢谢!
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-24 13:58:01
13#
哦,代码少写了一个判断,添加了CellValueisValid这个变量的目的就是判断在错误时再删除
参考下面的代码,另外,如果有新的问题,建议单独发帖,这样也方便其他用户查询问题

  1.         private void FpSpread1_Change(object sender, ChangeEventArgs e)
  2.         {
  3.             if(CellValueisValid == false)
  4.             {
  5.                 fpSpread1.ActiveSheet.ActiveCell.ResetText();
  6.                 CellValueisValid = true;
  7.             }

  8.         }
复制代码
回复 使用道具 举报
info
初级会员   /  发表于:2020-9-24 13:07:57
12#
Richard.Ma 发表于 2020-9-24 12:07
这里想到了一个解决办法,通过CellValidateInfoNeeded事件判断验证错误,然后在Change事件中,将单元格清空 ...

使用上述方法会把正常输入的内容都清掉
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-24 12:07:51
11#
这里想到了一个解决办法,通过CellValidateInfoNeeded事件判断验证错误,然后在Change事件中,将单元格清空


  1.         bool CellValueisValid = true;
  2.         private void FpSpread1_CellValidateInfoNeeded(object sender, CellValidateInfoNeededEventArgs e)
  3.         {
  4.             if (!e.IsValid)
  5.             {
  6.                
  7.                 CellValueisValid = false;
  8.             }
  9.         }
  10.         private void FpSpread1_Change(object sender, ChangeEventArgs e)
  11.         {
  12.             fpSpread1.ActiveSheet.ActiveCell.ResetText();
  13.             CellValueisValid = true;
  14.         }
复制代码
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-23 18:32:55
10#
这个我需要帮你验证一下,明天早上给您回复
回复 使用道具 举报
info
初级会员   /  发表于:2020-9-23 16:03:46
9#
Richard.Ma 发表于 2020-9-23 15:36
可以给MessageBoxNotify加上DoActionReason属性来控制何时弹出
比如下面的代码,只在编辑结束时弹出一次, ...

不好意思还有个小问题,如果提示输入错误,能否直接把输入错误的内容进行清除
现在是提示之后按确定数值还是会在单元格,然而这数值是不合法的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-9-23 15:36:25
8#
可以给MessageBoxNotify加上DoActionReason属性来控制何时弹出
比如下面的代码,只在编辑结束时弹出一次,
  1. DoActionReason= ValidateReasons.EndEdit
复制代码
回复 使用道具 举报
info
初级会员   /  发表于:2020-9-23 15:08:10
7#

根据上述方法可以实现弹窗,但是弹窗是点击"确定"后还会弹一次,请问是什么问题呢
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部