Foxtable(狐表)用户栏目专家坐堂 → 日期输入框控件要禁止用户清空


  共有17451人关注过本帖树形打印复制链接

主题:日期输入框控件要禁止用户清空

帅哥哟,离线,有人找我吗?
reachtone
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
日期输入框控件要禁止用户清空  发帖心情 Post By:2009/7/28 16:08:00 [只看该作者]

日期输入框控件在设置了默认日期以后,就应该禁止用户将其内容清空。我反复试了一下,尽管表面上是把日期内容清空掉了,实际上它的Value值依然存在。
这在设计日期查询窗口时容易使用户产生误会:日期明明清空了,为什么还会出来这个日期的数据?
因为日期值是不可能为空的,建议该控件也要禁止用户把日期清除掉(尽管是表面上的)。

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/7/28 16:17:00 [只看该作者]

日期输入框是可以清空的,日前变量不能为空而已.

你可以测试在按钮中测试:

messagebox.Show(e.Form.Controls("DateTimePicker1").Value Is Nothing)

判断是否输入了日期,应该通过日期输入框的Value属性,而不是变量


 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/7/28 17:01:00 [只看该作者]

按楼上的方法,我反复测试,怎么还是不行呢?
请老六帮忙看看以下代码有什么问题没有。这是在DateTimePicker1控件的内容改变中设置的,如果日期为空的话,TextBox1的值就应该为空,否则就显示该日期对应的星期。现在即使将日期清空了,但TextBox1还是显示上一个日期所对应的星期数。
If e.Form.Controls("DateTimePicker1").Value Is Nothing
    e.Form.Controls("TextBox1").Value=""
else
    e.Form.Controls("TextBox1").Value=Format(e.Form.Controls("DateTimePicker1").Value,"dddd")
end if

[此贴子已经被作者于2009-7-28 17:16:23编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/7/28 17:20:00 [只看该作者]

请高手帮忙看看,上面的代码究竟错在哪里呢?

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

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/7/28 17:23:00 [只看该作者]

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目146.table


 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/7/28 17:31:00 [只看该作者]

以下是引用狐狸爸爸在2009-7-28 17:23:00的发言:

 

 下载信息  [文件大小:308.0 KB  下载次数:1]
图片点击可在新窗口打开查看点击浏览该文件:管理项目146.table


那现在问题来了:同样的代码在单击事件中有效,为什么在TextChanged就无效呢?我希望的是,只要日期改变,就可马上看到星期的改变。
清空日期以后,Text当然也就改变了,为什么它就不执行呢?


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/7/28 17:37:00 [只看该作者]

这是当然的,输入过程不会改变Value的,必须离开控件,Value值才会更改。

不过也不是没有办法,帮助提到的:

TextChanged

控件的Text属性发生变化后执行。
在控件中每输入或删除一个字符,都会触发TextChanged事件。


e参数属性:

Sender:返回触发事件的控件
Form:   返回控件所在的窗口 


示例


假定某个文本框绑定到一个字段,我们在该文本框输入内容的时候,并不会即刻刷新字段的内容,直到你输入结束并离开该文本框,字段的内容才会刷新。
如果你希望在文本框中进行的任何编辑,均能即时显示在字段中,可以将其TextChanged事件代码设为:


e.Sender.WriteValue()




 回到顶部
帅哥哟,离线,有人找我吗?
reachtone
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:版主 帖子:1993 积分:19409 威望:0 精华:20 注册:2008/9/2 10:09:00
  发帖心情 Post By:2009/7/28 17:50:00 [只看该作者]

哦,终于明白了。日期输入框比文本框、组合框等少一个Text属性,我把事件直接复制过来修改一下用的。
汗。。。


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47477 积分:251256 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/7/28 17:54:00 [只看该作者]

其实这些控件也有Text属性的

 回到顶部