以文本方式查看主题 - 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=86843) |
-- 作者:hopestarxia -- 发布时间:2016/6/27 16:34:00 -- 关于窗口中ComboBox下拉选项的问题 一个窗口中的ComboBox2控件绑定了部门表的部门名称列,下拉选择的时候希望选择了对应的部门名称后, 在窗口中textbox4部件中自动填上对应部门的电话(tel) 代码如下,实现了其中的需求 Dim cm As WinForm.ComboBox = e.Form.Controls("ComboBox2") Dim dr As DataRow = cm.SelectedItem If dr IsNot Nothing Then e.Form.Controls("textbox4").Value = dr("tel") End If 产生问题如下,请帮助: 问题:如果ComboBox2处先选择了一个部门,后发现本次输入的数据不需要填部门,于是把部门内容消除掉,则对应的textbox4处还显示上次的电话,不跟着清空。请问此处怎么处理? |
-- 作者:大红袍 -- 发布时间:2016/6/27 16:35:00 -- Dim cm As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Dim dr As DataRow = cm.SelectedItem
If dr IsNot Nothing Then
e.Form.Controls("textbox4").Value = dr("dptid")
Else
e.Form.Controls("textbox4").Value = Nothing
End If
|
-- 作者:hopestarxia -- 发布时间:2016/6/27 16:48:00 -- 谢谢啊,不行啊这样。 |
-- 作者:大红袍 -- 发布时间:2016/6/27 18:14:00 -- Dim cm As WinForm.ComboBox = e.Sender Dim dr As DataRow = DataTables("表A").find("第一列 = \'" & cm.Text & "\'") If dr IsNot Nothing Then e.Form.Controls("textbox4").Value = dr("dptid") Else e.Form.Controls("textbox4").Value = Nothing End If |
-- 作者:hopestarxia -- 发布时间:2016/6/27 20:41:00 -- 谢谢,不知什么原因,还是只能在ComboBox2有选择的时候可以,清除ComboBox2里内容的时候textbox4就不跟着变动了。 |
-- 作者:大红袍 -- 发布时间:2016/6/27 20:43:00 -- 写到TextChanged事件啊 |
-- 作者:hopestarxia -- 发布时间:2016/6/27 21:08:00 -- 谢谢帮助啊, 我一直放到SelectedIndexChanged事件中去了。
|
-- 作者:hopestarxia -- 发布时间:2016/7/1 22:17:00 -- 再请教一下此处修改的问题 Dim cm As WinForm.ComboBox = e.Sender Dim dr As DataRow = DataTables("表A").find("第一列 = \'" & cm.Text & "\'") If dr IsNot Nothing Then e.Form.Controls("textbox4").Value = dr("dptid") Else e.Form.Controls("textbox4").Value = Nothing End If 在新增的时候使用正常,可以是修改的状态下不管用,将语句放到SelectedIndexChanged中, 在改变选择的时候管用,但当修改时,是将原来所选的值除掉,此时则不管用了。 请教一下原因/。
|
-- 作者:Hyphen -- 发布时间:2016/7/2 8:52:00 -- 2个地方都加上代码,不同的事件触发的方式不一样 |