以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  为啥 ComboBox 这个控件没有Key 属性的呢?做业务十分不方便  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=116659)

--  作者:pizzahe
--  发布时间:2018/3/28 22:32:00
--  为啥 ComboBox 这个控件没有Key 属性的呢?做业务十分不方便
为啥 ComboBox 这个控件没有Key 属性的呢?做业务十分不方便
这个是常用控件,很多时候展示的内容和传递的参数是不一样的!
如果有Key属性,就可以很方便处理了,就类似树控件,节点有Name 和Text属性,还有index属性,使用起来就很方便!
强烈建议 ComboBox 的选项有 Key 属性!

--  作者:pizzahe
--  发布时间:2018/3/28 22:37:00
--  

Dim cmb As WinForm.ComboBox
cmb = Forms(
"窗口1").Controls("ComboBox1")
cmb.ComboList =
"Key1|计算机|Key2|打印机|Key3|传真机|Key4|电话机"


或者:

cmb.ComboList = "Key1-计算机|Key2-打印机|Key3-传真机|Key4-电话机"


能这样,编程起来就爽歪歪了!

[此贴子已经被作者于2018/3/28 22:43:44编辑过]

--  作者:有点甜
--  发布时间:2018/3/28 22:48:00
--  

用另一个变量存放,如

 

Dim cmb As WinForm.ComboBox
cmb = e.form.Controls("ComboBox1")
cmb.ComboList = "计算机|打印机"
cmb.basecontrol.tag = "1|2"

 

\'获取

msgbox(cmb.SelectedIndex)

msgbox(cmb.basecontrol.tag.split("|")(cmb.SelectedIndex))


--  作者:pizzahe
--  发布时间:2018/3/29 8:11:00
--  
那引用表中的数据作为下拉项目,在属性设置列表中怎么实现呢?
--  作者:有点甜
--  发布时间:2018/3/29 8:35:00
--  

方法一:http://www.foxtable.com/webhelp/scr/0926.htm

 

方法二:http://www.foxtable.com/webhelp/scr/1523.htm

 


--  作者:pizzahe
--  发布时间:2018/3/29 9:46:00
--  
这样获得的Combox,ValueChanged 事件无效,是怎么回事?
--  作者:pizzahe
--  发布时间:2018/3/29 9:49:00
--  
ComboBox  的 ValueChanged 事件生成 B ComboBox 的列表 ,B ComboBox 的 ValueChanged 无效,咋回事?

Dim frees As new List(of DataRow)
xyb.baseControl.Tag = ""
frees = costTab.Select(" roomID = " & lf("ID") & "and selected= 1 and (freeType= \'用量计费 \' or freeType= \'限额计费 \' or freeType= \'阶梯计费 \')" )
For Each free As DataRow In frees
     xyb.ComboList =  xyb.ComboList & "|" & free("freeName") & " (" & free("Price") & " " & free("Unit") & " )"
     xyb.baseControl.Tag = xyb.baseControl.Tag & "|" & free("senID")
Next
xyb.ComboList = xyb.ComboList & "|全部"
xyb.baseControl.Tag = xyb.baseControl.Tag & "|全部"
xyb.SelectedIndex = 0


--  作者:有点甜
--  发布时间:2018/3/29 9:53:00
--  

回复7楼,有可能tag被foxtable使用了。你改成全局变量,如

 

xyb.baseControl.Tag = xyb.baseControl.Tag & "|" & free("senID")

 

改成

 

vars("xyb") = vars("xyb") & "|" & free("senID")

 

[此贴子已经被作者于2018/3/29 9:53:22编辑过]

--  作者:pizzahe
--  发布时间:2018/3/29 9:57:00
--  
晕死,本来很简单的事情,搞得这么复杂!
--  作者:有点甜
--  发布时间:2018/3/29 9:58:00
--  
以下是引用pizzahe在2018/3/29 9:57:00的发言:
晕死,本来很简单的事情,搞得这么复杂!

 

或者,你可以用两个combobox,一个隐藏、一个显示。