以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  下拉框的控制  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63372)

--  作者:edisontsui
--  发布时间:2015/1/19 19:44:00
--  下拉框的控制
我希望在输入列资料的时候,只能在下拉框中选择数据,而不允许自行添加下拉框中之外的数据,怎样做得到呢?谢谢。
--  作者:有点甜
--  发布时间:2015/1/19 19:47:00
--  

 afterload代码

 

Dim c As WinForm.ComboBox = Forms("窗口1").Controls("ComboBox1")
c.AllowEditValue = False


--  作者:有点甜
--  发布时间:2015/1/19 19:48:00
--  
或者设置属性 允许直接输入 -> False
--  作者:edisontsui
--  发布时间:2015/1/19 19:52:00
--  
谢谢。
--  作者:edisontsui
--  发布时间:2015/1/23 20:13:00
--  
属性里面的“允许直接输入”设置为 False 了, 我在数据表直接编辑数据时,却可以从别处复制和粘贴下拉框里面没有的内容。怎么才能限制不许自行输入、不许复制粘贴下拉框里面没有的内容?也即是说,如何做到只能从下拉框里面选择数据?谢谢。
--  作者:Bin
--  发布时间:2015/1/24 8:59:00
--  
在DataColChangIng事件里.利用FInd查找一下数据是否合法存在, 不是就执行 e.cancel=true 取消


--  作者:edisontsui
--  发布时间:2015/1/25 10:54:00
--  
可否拿我的项目举个具体例子,具体怎么写?谢谢。
--  作者:有点甜
--  发布时间:2015/1/25 11:10:00
--  
If e.DataCol.Name = "第一列" Then
    If e.NewValue IsNot Nothing AndAlso Tables(e.DataTable.Name).Cols("第一列").ComboList.Contains(e.NewValue) = False Then
        e.Cancel = True
    End If
End If

--  作者:edisontsui
--  发布时间:2015/1/25 11:52:00
--  
我用了这个语句之后,我从别的地方copy数据粘贴上去,会出现“运行错误,调用的目标发生了异常”,当我点击其右上角的额“X”之后,还是把数据粘贴上去了。可否做到根本就不允许粘贴上去?
--  作者:有点甜
--  发布时间:2015/1/25 11:56:00
--  

 粘贴上去不生效啊

 

If e.DataCol.Name = "第一列" Then
    If e.NewValue <> Nothing AndAlso Tables(e.DataTable.Name).Cols("第一列").ComboList.Contains(e.NewValue) = False Then
        e.Cancel = True
    End If
End If