以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]动态添加控件之控件位置问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=57210)

--  作者:zyqzyy
--  发布时间:2014/9/20 23:04:00
--  [求助]动态添加控件之控件位置问题

在窗口中的Panel2中动态添加TextBox控件,动态添加控件的垂直高度每次均递增20,当面板出现垂直滚动条时,添加的控件垂直位置却变大
了,这是为什么?如何解决?

注:每选择一个列表项目自动添加 一个TextBox控件。

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:面板属性测试.foxdb


--  作者:程兴刚
--  发布时间:2014/9/20 23:55:00
--  
我有办法,等我空了!
--  作者:zyqzyy
--  发布时间:2014/9/21 0:14:00
--  
期待程老师指点!
--  作者:有点甜
--  发布时间:2014/9/21 9:14:00
--  

 这个无法解决,你加入代码设置停靠吧

 

If e.Checked = True
    \'实现每选定一个项目,增加一个列宽设置的输入框,并把输入焦点移互列宽输入框,列宽默认值设为50
    Dim lbl As WinForm.TextBox
    lbl = e.Form.CreateControl(e.Sender.SelectedValue, ControlTypeEnum.TextBox)  \'用选定项目的值作为临时增加控件的名称
    lbl.Left = 10
    lbl.Width=50

    lbl.Top = 20 + (e.Sender.CheckedIndices.Count)*20  \'垂直位置平均增加相同的值
    e.Form.Controls("Panel2").AddControl(lbl)
    lbl.Dock = 1

    lbl.Value = 80   \'设置默认值
    If lbl.Value = 80
        e.Form.Controls(e.Sender.SelectedValue).Select  \'设置输入焦点到列宽值设置框
    End If
Else
    e.Form.RemoveControl(e.Sender.SelectedValue)
End If

Dim lb As WinForm.Label = e.Form.Controls("Label1")
lb.Text  = (e.Sender.CheckedIndices.Count-1) * 20


--  作者:zyqzyy
--  发布时间:2014/9/21 10:34:00
--  
谢谢甜版主!