找回密码
 立即注册

QQ登录

只需一步,快速开始

yin_tb

高级会员

53

主题

200

帖子

1065

积分

高级会员

积分
1065

微信认证勋章

yin_tb
高级会员   /  发表于:2020-11-7 18:57  /   查看:4282  /  回复:8
1金币
如果,C1DateEdit的Clear清除VALUE的问题, 为何将它下拉列表的Clear显示了,点Clear也清掉了,但当焦点到别的空件后,日期内容又显示出来了。我也看了Alice回复某个伙伴的帖子,说处理Delete键,这个我能实现,我就是想问,Clear按钮不管用吗?我的C1版本是2018V1版本。

8 个回复

倒序浏览
yin_tb
高级会员   /  发表于:2020-11-7 19:04:56
沙发
Alice的DEMO我试了,一个道理,Clear不起作用,控件换了焦点,值又出来了,除非是捕获DELETE键或用单独的按钮把VALUE设为NULL.  这是个BUG吗?Clear不起作用的问题。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-8 01:27:33
板凳
问题已经收到,我周一会给你验证一下这里的问题原因。然后给你回复
回复 使用道具 举报
yin_tb
高级会员   /  发表于:2020-11-9 18:38:39
地板
明天帮我看下
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-10 02:33:07
5#
本帖最后由 Richard.Ma 于 2020-11-10 02:34 编辑

Clear按钮是管用的,也清除了日期,目前的问题在于C1DateEdit控件失去光标时会默认一个日期,我白天帮你尝试了用下面的代码,在Leave事件中判断,这样可以去掉添加的日期,但是如果是在C1DateEdit失去焦点然后再清空的情况下,仍然是没有作用的,我明天会再看看是否有其他的办法

  1.         bool isnull = false;
  2.         private void C1DateEdit1_ValueChanged(object sender, EventArgs e)
  3.         {
  4.             isnull = (String.IsNullOrEmpty(c1DateEdit1.Text));
  5.         }

  6.         private void C1DateEdit1_Leave(object sender, EventArgs e)
  7.         {
  8.             if (isnull)
  9.                 c1DateEdit1.Text="";
  10.         }
复制代码

回复 使用道具 举报
yin_tb
高级会员   /  发表于:2020-11-10 07:24:29
6#
辛苦了,我说的和你试的是一回事,焦点离开,又有值了,那不还是等于clear不管用吗。你直接提交这个BUG吧,别浪费时间了,我捕获delete用着吧,你用level等好像也不好弄,因为你如何知道你点过clear呀,如果能知道点了clear,那就好办了。我最近发现一个问题,C1这个组件,得超过20年了,为何在一些小细节上,总是那么多的BUG
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2020-11-10 09:56:25
7#
嗯,软件产品bug确实没有办法完全避免,bug我这边会提上去后在此贴更新处理状态,此贴状态会变更为保留处理
回复 使用道具 举报
王健
初级会员   /  发表于:2022-2-9 19:57:35
8#
为什么我按Delete键也一样会恢复呀?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-2-10 10:31:36
9#
你好,上面的代码可以稍作修改,在Leave事件中设置Value为null,这样就能避免这个问题了


  1.         bool isnull = false;
  2.         private void C1DateEdit1_ValueChanged(object sender, EventArgs e)
  3.         {
  4.             isnull = (String.IsNullOrEmpty(c1DateEdit1.Text));
  5.         }

  6.         private void C1DateEdit1_Leave(object sender, EventArgs e)
  7.         {
  8.             if (isnull)
  9.             {
  10.                 c1DateEdit1.Value = null;
  11.             }
  12.                
  13.         }
复制代码
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部