请问如何动态限制表格输入数据范围

xld2001 2015-12-16 07:30:30


新建方法程序 aa
然后在init
= Bindevent(Thisform.Grid1.Columns(1).text1, "RangeLow", Thisform, "aa")
怎么不好用?

如果直接在表格的RangeLow输入 return 0 就可以
...全文
184 4 打赏 收藏 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
都市夜猫 2015-12-17
  • 打赏
  • 举报
回复
你都没判断用户输入的值是否有效就直接 Nodefault,当然永远不可能离开 至少得这样吧:
If AEvents(aTemp, 0) > 0
	oo = aTemp[1]
	If (Vartype(oo) == 'O') and (oo.Value <= 0)
		MessageBox('有效值必须大于 0')
		oo.Parent.SetFocus()
		oo.SetFocus()
		NoDefault
	EndIf
EndIf
xld2001 2015-12-17
  • 打赏
  • 举报
回复
= Bindevent(Thisform.Grid1.Columns(1).text1, "LostFocus", Thisform, "aa") 老师这样焦点是离不开,可用鼠标点也没反应 不能事先向 RangeLow 中加,表格是动态加载的
xld2001 2015-12-17
  • 打赏
  • 举报
回复
感谢老师多次帮助,谢谢
都市夜猫 2015-12-16
  • 打赏
  • 举报
回复
这个还真不好说,不知道 vfp 开发团队一开始是怎样想的 很多 vfp 独有的事件,例如你遇到的这个,以及 When、Valid 等等,要想后期绑定成功的话,原事件中必须有代码,哪怕只是一行注释。 你在 text1 的 RangeLow 事件中仅输入一个星号(*)就可以看到效果 所以,一般不要绑定这些事件,如有更通用的就用更通用的,例如 RangeLow 可以用 LostFocus 来替代,并用 nodefault 语句来阻止控件丢失焦点

2,750

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧