以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]窗口中combobox的用法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=33656)

--  作者:chnfo
--  发布时间:2013/5/22 11:46:00
--  [求助]窗口中combobox的用法
现在有Con和ConL两个表。并新建一个窗口

在窗口中,要根据combobox的选择来确定窗口中表的显示内容。
combobox的数据源来自于Con表,可以下拉选择行,要求打开窗口就有一个默认值
窗口中表的显示内容的Filter 是 ConID = 当前combobox选择的行对应的_identify


 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:窗口中combobox的用法问题.rar

[此贴子已经被作者于2013-5-22 12:12:27编辑过]

--  作者:Bin
--  发布时间:2013/5/22 11:52:00
--  
能不能再描述清楚一点你的需求.
--  作者:chnfo
--  发布时间:2013/5/22 23:12:00
--  
又试了一下,基本解决问题。
但还有一个地方,请教一下,如何让这个combox的显示内容与下拉列表的内容一样。
例如下拉选择A时,combox里显示也是A,而不是显示值“A”对应的ID值1
下拉选择B时,combox里显示也是B,而不是显示值“B”对应的ID值2
如果用cmb.text = dr("Title"),理论上应当可行,但实际执行时报错。
该当如何解决呢?


传不了附件,直接代码

窗口1_AfterLoad

\'选择一个默认值

Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")

cmb.DisplayMember = "title" \'设置显示列

cmb.ValueMember = "_Identify" \'设置取值列

cmb.DataSource = "Con"

cmb.SelectedIndex = 0  \'用这个可以设置默认值吗?

Dim dr As DataRow = cmb.SelectedItem

Dim t As Table = Tables(e.Form.Name & "_TablePL")

t.Fill("select * from {ConL}" , False)

If dr IsNot Nothing Then

    t.Filter = "ConID = " & dr("_Identify")

Else

    t.Filter = "False"

End If

窗口1_ComboBox1_SelectedIndexChanged

Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox1")

Dim dr As DataRow = cmb.SelectedItem

Dim t As Table = Tables(e.Form.Name & "_TablePL")

If dr IsNot Nothing Then

    t.Filter = "ConID = " & dr("_Identify")

Else

    t.Filter = "False"

End If



[此贴子已经被作者于2013-5-22 23:50:59编辑过]

--  作者:chnfo
--  发布时间:2013/5/23 7:39:00
--  
把取值列改为Title即可