以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]动态加载控件绑定出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=153875) |
||||
-- 作者:2425004926 -- 发布时间:2020/8/26 11:53:00 -- [求助]动态加载控件绑定出错
Dim cm As WinForm.ComboBox cm = e.Form.CreateControl("ComboBox" & "+" & Tables("导入资料").Rows(0)("第一列"), ControlTypeEnum.ComboBox)e.Form.AddControl(cm) cm.SetBounds(100,30,150,21) 为什么加上以下代码,及绑定的表和列就会出错? \'cm.DisplayMember = "列标题" \'设置显示列\'cm.ValueMember = "列标题" \'设置取值列 \'cm.DataSource = "导入" \'列表项目来源的表 |
||||
-- 作者:有点蓝 -- 发布时间:2020/8/26 12:08:00 -- 换种用法:cm.ComboList = DataTables("导入").GetComboListString("列标题") |
||||
-- 作者:2425004926 -- 发布时间:2020/8/26 12:18:00 -- 因为在组合框后边还增加了一个文本框,组合框选值,自动带出文本框值 If Typeof e.sender Is WinForm.ComboBox Then Dim cm As WinForm.ComboBox = e.sender Dim dr As DataRow = cm.SelectedItem For Each c As Winform.Control In e.Form.Controls If Typeof c Is WinForm.textBox Then Dim d As WinForm.textBox = c \'必须要定义文本框,否则会出错,Value对应的是文本框,而不是原始控件 Dim a As String = cm.name.Replace("ComboBox","") If d.Name.Contains(a) Then d.Value = dr("第二列") End If End If Next End If 如果用上边的方法,是可以选择,但文本框带出值时会出错 我以前用静态时没有问题 ,现在想改成动态增加时就出错
|
||||
-- 作者:2425004926 -- 发布时间:2020/8/26 12:22:00 -- [此贴子已经被作者于2020/8/26 12:31:31编辑过]
|
||||
-- 作者:2425004926 -- 发布时间:2020/8/26 12:38:00 --
|
||||
-- 作者:有点蓝 -- 发布时间:2020/8/26 13:41:00 -- 由于不是绑定的,所以SelectedItem并不是datarow类型 If Typeof e.sender Is WinForm.ComboBox AndAlso e.sender.Name.Contains("+") Then Dim cm As WinForm.ComboBox = e.sender If cm.text > "" Then Dim txtName As String = "TextBox+" & cm.Name.Split("+")(1) Dim dr As DataRow = DataTables("导入").Find("列标题=\'" & cm.text & "\'") If e.Form.ExistControl(txtName ) And dr IsNot Nothing Dim d As WinForm.textBox = e.Form.Controls(txtName) d.Text = dr("第二列") End If End If End If |
||||
-- 作者:2425004926 -- 发布时间:2020/8/26 14:31:00 -- 非常感谢!感谢! 还有一个问题,窗口的高度是随着”导入资料“表的行数决定,是变化状态,以下代码没有起作用,应该写在哪个事件 e.Form.Height = 20+134+20 + Tables("导入资料").rows.Count * 31 +30 +20+85+25
|
||||
-- 作者:2425004926 -- 发布时间:2020/8/26 14:57:00 -- 改成以下,好了 e.Form.BaseForm.Height
|