以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]按照顺序增加控件textbox (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=82289) |
-- 作者:huhu -- 发布时间:2016/3/15 11:49:00 -- [求助]按照顺序增加控件textbox 我想点击盖楼这个button,然后窗体自动增加一个textbox,属性是多行。 竖排增加。这种自动增加控件有办法实现吗?
|
-- 作者:大红袍 -- 发布时间:2016/3/15 11:57:00 -- 参考代码
static i As Integer = 0 Dim txt As WinForm.TextBox i+= 1 |
-- 作者:huhu -- 发布时间:2016/3/15 15:40:00 -- 怎么改这个控件的大小?把txt.height = 5000 改大也无用。
|
-- 作者:huhu -- 发布时间:2016/3/15 16:10:00 -- 找到了。setbounds txt.SetBounds(150,y,300,100)问题来了。 现在是窗体不会自动向下拉,就是增加了多个textbox后,后面增加的textbox看不到了。窗体需要有下拉条才行。怎么弄?
|
-- 作者:huhu -- 发布时间:2016/3/15 16:11:00 -- 哦。改为自动滚动就可以了。 |
-- 作者:大红袍 -- 发布时间:2016/3/15 16:22:00 -- 新版没问题,旧版要换一下顺序
txt.MultiLine = True txt.height = 500 |
-- 作者:huhu -- 发布时间:2016/3/15 17:26:00 -- Dim r As Row = Tables("盖楼").AddNew() static i As Integer = 0 static y As Integer = 20 Dim txt As WinForm.TextBox Dim Label1,label2 As WinForm.Label txt = e.Form.CreateControl("TextBox" & i, ControlTypeEnum.TextBox) label1 = e.Form.CreateControl("label1" & i, ControlTypeEnum.label) label2 = e.Form.CreateControl("label2" & i, ControlTypeEnum.label) txt.Left = 150 txt.Top = y txt.height = 50 txt.MultiLine = True txt.ScrollBars = Windows.Forms.ScrollBars.Vertical txt.SetBounds(150,y,500,50) e.Form.AddControl(txt) txt.BindingField = "盖楼.备注" label1.Left = 50 label1.Top = y e.Form.AddControl(label1) Dim str As String Dim id As Integer id = user.name.IndexOf("@") str = user.name.SubString(0,id) label1.Text = i & "楼" & str msgbox(label1.text) label1.BindingField = "盖楼.回复者" label2.SetBounds(50,y + 20,100,50) label2.Left = 50 label2.Top = y + 20 e.Form.AddControl(label2) label2.BindingField = "盖楼.回复时间" label2.Text = Date.now i+= 1 y += txt.height + 10 label1和label2的绑定为啥不生效呢?
|
-- 作者:大红袍 -- 发布时间:2016/3/15 20:17:00 -- 你绑定有什么意义?绑定的数据,只能显示一行的,莫非你新增的控件都显示一行的数据? |
-- 作者:huhu -- 发布时间:2016/3/16 9:30:00 -- 盖楼click代码: DataTables("盖楼").LoadFilter = "BUG_ID = \'" & Vars("BUGID") & "\'" DataTables("盖楼").Load Dim r As Row = Tables("盖楼").AddNew() r("BUG_ID") = Vars("BUGID") static i As Integer = 0 static y As Integer = 20 Dim txt As WinForm.TextBox Dim Label1,label2 As WinForm.Label txt = e.Form.CreateControl("TextBox" & i, ControlTypeEnum.TextBox) label1 = e.Form.CreateControl("label1" & i, ControlTypeEnum.label) label2 = e.Form.CreateControl("label2" & i, ControlTypeEnum.label) txt.Left = 150 txt.Top = y txt.height = 50 txt.MultiLine = True txt.ScrollBars = Windows.Forms.ScrollBars.Vertical txt.SetBounds(150,y,500,50) e.Form.AddControl(txt) txt.BindingField = "盖楼.备注" label1.Left = 50 label1.Top = y e.Form.AddControl(label1) Dim str As String Dim id As Integer id = user.name.IndexOf("@") str = user.name.SubString(0,id) label1.Text = i & "楼" & str \'msgbox(label1.text) \'\'label1.BindingField = "盖楼.回复者" label2.SetBounds(50,y + 20,100,50) label2.Left = 50 label2.Top = y + 20 e.Form.AddControl(label2) \'label2.BindingField = "盖楼.回复时间" label2.Text = Date.now i+= 1 y += txt.height + 10 就是需要把新增的控件的内容写入到新增行中。另外绑定了数据,再次点击盖楼,控件内容消失了,但后台数据仍然保留有,这是怎么回事? 还有就是明明新增了好几个textbox,再次打开控件的都没了。
|
-- 作者:大红袍 -- 发布时间:2016/3/16 9:44:00 -- 每一楼,控件命名为比如 "txt" & r("_Identify")
然后在textchanged事件里面写代码
Dim fdr As DataRow = DataTables("盖楼").Find("_Identify = \'" & e.Sender.name.Replace("txt", "") & "\'") If fdr IsNot Nothing Then fdr("备注") = e.sender.Text End If |