您的位置:程序门 -> .net技术 -> vb.net



[求助]关于动态设置控件的坐标位置


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


[求助]关于动态设置控件的坐标位置[已结贴,结贴人:usersmj]
发表于:2007-08-10 12:26:35 楼主
我在窗体中添加一个textbox1,要求每次单击textbox1时让控件pnlcalc出现在紧靠textbox1的正下方,代码如下:
if   textbox1.parent.gettype   is   textbox1.findform.gettype   then
      me.pnlcalc.left   =   textbox1.left  
      me.pnlcalc.top     =   textbox1.top   +   22
else
      me.pnlcalc.left   =   textbox1.parent.left   +   textbox1.left
      me.pnlcalc.top     =   textbox1.parent.top   +   textbox1.top   +   22
end   if

可当父容器为tabcontrol时不能达到要求,如何才能实现无论父容器为什么都能让控件pnlcalc出现在紧靠textbox1的正下方
发表于:2007-08-10 13:46:531楼 得分:20
把控件pnlcalc加入到父容器中,就可以了。
...controls.add   pnlcalc

例如我的一段代码,大体功能差不多吧
                                '移出原有的
                                if   not   me.mydg   is   nothing   then
                                        with   me.mydg
                                                me.controls.remove(me.mydg)
                                                me.mydg.dock   =   dockstyle.none
                                                me.parentform.controls.add(me.mydg)
                                                removeevent(mydg)
                                        end   with
                                end   if
                                '加入新来的
                                if   not   value   is   nothing   then
                                        with   value
                                                me.controls.add(value)
                                                '改变索引让它能否在pic上,而不是全部;
                                                me.controls.setchildindex(value,   0)
                                                .dock   =   dockstyle.fill
                                                addevent(value)
                                        end   with
                                end   if
                                me.mydg   =   value
==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
优惠接单开发,组件控件定制开发,成品源代码批发
联系方式:q64180940   全天在线
==================================================================
发表于:2007-08-10 14:11:282楼 得分:0
ok,谢谢了
发表于:2007-08-10 14:13:173楼 得分:0
我的解决代码如下:
                dim   parentform   as   form   =   me.findform()
                '添加到父窗体
                if   parentform.controls.contains(me.pnlcalc)   =   false   then
                        parentform.controls.add(me.pnlcalc)
                end   if
                '设置坐标
                dim   left   as   integer
                dim   top   as   integer
                dim   p   as   point   =   me.parent.pointtoscreen(me.location)
                p   =   parentform.pointtoclient(p)
                left   =   p.x   +   me.width   -   me.pnlcalc.width
                if   p.y   +   120   >   parentform.height   then
                        top   =   p.y   -   96
                else
                        top   =   p.y   +   22
                end   if
                me.pnlcalc.left   =   left
                me.pnlcalc.top   =   top


快速检索

最新资讯
热门点击