以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 自定义项目能做判断是否存在吗? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=2286) |
-- 作者:mr725 -- 发布时间:2009/4/4 16:48:00 -- 自定义项目能做判断是否存在吗? 我在窗口中combobox控件的属性列表项目采用自定义项目(允许手工输入)时,当选择后不小心按了某按键删除(或加上)了个别字符后,关闭窗口时出现错误提示~ 能不能加个判断,如果自定义项目中不存在的时候,提示没有该项目,而不是由系统弹出错误提示呢? [此贴子已经被作者于2009-4-4 19:04:12编辑过]
|
-- 作者:czy -- 发布时间:2009/4/4 18:20:00 -- 肯定可以的,来个示例文件吧,或将窗口模板传上来看看。 |
-- 作者:mr725 -- 发布时间:2009/4/4 19:09:00 -- 关闭 按钮 代码: Dim xm As DataRow = DataTables("项目表").Find("项目代码 = \'" & e.Form.Controls("combobox1").text.SubString(0,4) & "\'") if xm.isnull("项目代码") then e.Form.Controls("combobox1").value = "" e.Form.Controls("ComboBox1").Select() else Dim Multi As string = e.Form.Controls("combobox1").text Dim Values as String() Values = Multi.split(" ") dim ss1 as string = (Values(1)) Tables("pzbj").Current("项目") = ss1 e.form.Close() end if 项目格式是: 1001 项目1|1002 项目2| ......... 其中1001等是和项目表中的项目代码一致的。 其他也没什么代码的。 还有1楼应是手工允许直接录入 今天论坛网页一直有问题,时断时续的。。。。。。。。 [此贴子已经被作者于2009-4-4 19:11:32编辑过]
|
-- 作者:czy -- 发布时间:2009/4/4 19:32:00 -- 改成这样看看。 Dim xm As DataRow = DataTables("项目表").Find("项目代码 = \'" & e.Form.Controls("combobox1").text.SubString(0,4) & "\'") If xm Is Nothing Then e.Form.Controls("combobox1").value = "" e.Form.Controls("ComboBox1").Select() else Dim Multi As string = e.Form.Controls("combobox1").text Dim Values as String() Values = Multi.split(" ") dim ss1 as string = (Values(1)) Tables("pzbj").Current("项目") = ss1 e.form.Close() end if |
-- 作者:mr725 -- 发布时间:2009/4/4 19:38:00 -- 知道了,是‘1001 项目1’中间的空格造成的,所以要判断空格是否存在!~ 有时输入完1001后,项目 ‘1001 项目1 ’自动全部进入控件,这时比如敲回车不小心多触到小数点‘.’这样那个空格就没有了,项目1也被小数点清掉了,只剩下 1001. ,代码中的Values = Multi.split(" ") 就失灵了, 就会出现错误提示 现在要求增加一个判断,点击关闭按钮时,如果自定义项目中没有控件中的内容的话,就返回控件重新输入,该怎么做??? |
-- 作者:czy -- 发布时间:2009/4/4 19:40:00 -- 测试一下四楼的代码,看看能不能解决? |
-- 作者:mr725 -- 发布时间:2009/4/4 19:57:00 -- 诶~ czy版主的 If xm Is Nothing Then 比我的 if xm.isnull("项目代码") then 要好(因为我的项目代码中有几行确实是空值,是必须保留的空值) ! 谢谢了。 不过我5楼说的还是会发生问题的。还要加上是否有空格的判断和自定义项目中没有控件中的内容 的判断,因为允许直接输入,可能会超出自定义内容 |
-- 作者:mr725 -- 发布时间:2009/4/4 20:13:00 -- czy版主:请看5、7楼。 今天不知我这里网络有点问题还是论坛的问题,总是时断时续的。。。。。。。。 |
-- 作者:狐狸爸爸 -- 发布时间:2009/4/4 21:09:00 -- Validating 离开控件之前执行,通常用于验证控件的内容。 e参数属性: Sender:返回触发事件的控件 示例 如果将某个DateTimePicker(日期输入框)的Validating事件设置为: If e.Sender.Value Is Nothing Thene.Cancel = True End If 这样直到你在该DateTimePicker中输入内容,否则你将不能离开它去选择其他控件。 但是验证也有例外的时候,例如窗口中通常有一个取消按钮,单击这个按钮,最好不用执行任何控件的Validating事件,否则我明明需要取消操作,却还得在取消之前还得输入一些内容,这不符合通常的操作习惯。为解决这个问题,只需在窗口设计的时候,将这个按钮的"执行验证"属性设为False即可,该属性位于“行为”分组中。 |
-- 作者:mr725 -- 发布时间:2009/4/4 22:02:00 -- 空格判断解决了, [此贴子已经被作者于2009-4-4 22:02:38编辑过]
|